diff options
| author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-05-22 09:57:57 +0000 |
|---|---|---|
| committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-05-22 09:57:57 +0000 |
| commit | 03528f346af23d53d853ec514fd3bb99eb33f00a (patch) | |
| tree | b5876419bb74093bfb4bade68987788733895f9e /lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp | |
| parent | a4c571cd1cb1aa2e4dd5528579e4763d6a75c993 (diff) | |
[SystemZ] Fix thinko in long branch pass
The original version of the pass could underestimate the length of a backward
branch in cases like:
alignment to N bytes or more
...
relaxable branch A
...
foo: (aligned to M<N bytes)
...
bar: (aligned to N bytes)
...
relaxable branch B to foo
We don't add any misalignment gap for "bar" because N bytes of alignment
had already been reached earlier in the function. In this case, assuming
that A is relaxed can push "foo" closer to "bar", and make B appear to be
in range. Similar problems can occur for forward branches.
I don't think it's possible to create blocks with mixed alignments as
things stand, not least because we haven't yet defined getPrefLoopAlignment()
for SystemZ (that would need benchmarking). So I don't think we can test
this yet.
Thanks to Rafael EspĂndola for spotting the bug.
llvm-svn: 182460
Diffstat (limited to 'lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp')
0 files changed, 0 insertions, 0 deletions
