aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/DFAPacketizer.cpp
diff options
context:
space:
mode:
authorJim Stichnoth <stichnot@chromium.org>2012-12-14 11:45:03 -0800
committerJim Stichnoth <stichnot@chromium.org>2012-12-14 11:45:03 -0800
commite64e31f908ef4e0d2361cacf94c4e513d826c3e1 (patch)
treeefda74eb9841be181e8b5707e9642e05da8f0f23 /lib/CodeGen/DFAPacketizer.cpp
parent2fb9f8f3cbeab81064efb3b471a5863779037c23 (diff)
Prevent FastISel X86_64 from generating bad instructions for NaCl.
If the addressing mode matches certain patterns, then FastISel for the instruction is rejected and regular ISel is used, where X86DAGToDAGISel::LegalizeAddressingModeForNaCl() does the necessary transformations. The most common problem (which shows up in spec2k gcc and crafty) is when a register holds a negative offset indexing an interior pointer into a global struct/array, e.g. global_var[10+reg] where &global_var[10] is a precomputed constant and reg is negative. BUG= http://code.google.com/p/nativeclient/issues/detail?id=3211 TEST= On the x86-64 platform, run 176.gcc from spec2k with FastISel forced, e.g. by modifying pnacl-translate.py to set default FAST_TRANSLATION=1 and uncommenting the "-fast-isel" flag in the LLC_FLAGS_FAST_X8664 definition. Review URL: https://codereview.chromium.org/11543023
Diffstat (limited to 'lib/CodeGen/DFAPacketizer.cpp')
0 files changed, 0 insertions, 0 deletions