llvm-6502/lib
Louis Gerbarg 7d54c5b0f2 Make sure no loads resulting from load->switch DAGCombine are marked invariant
Currently when DAGCombine converts loads feeding a switch into a switch of
addresses feeding a load the new load inherits the isInvariant flag of the left
side. This is incorrect since invariant loads can be reordered in cases where it
is illegal to reoarder normal loads.

This patch adds an isInvariant parameter to getExtLoad() and updates all call
sites to pass in the data if they have it or false if they don't. It also
changes the DAGCombine to use that data to make the right decision when
creating the new load.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214449 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-31 21:45:05 +00:00
..
Analysis Fix ScalarEvolutionExpander when creating a PHI in a block with duplicate predecessors 2014-07-31 19:13:38 +00:00
AsmParser Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
Bitcode UseListOrder: Handle self-users 2014-07-31 18:33:12 +00:00
CodeGen Make sure no loads resulting from load->switch DAGCombine are marked invariant 2014-07-31 21:45:05 +00:00
DebugInfo DWOHolder takes ownership of the argument constructor, use std::unique_ptr. 2014-07-31 20:26:42 +00:00
ExecutionEngine Use std::unique_ptr to make the ownership explicit. 2014-07-31 03:12:45 +00:00
IR Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
IRReader Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
LineEditor [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
Linker Include <tuple> to make buildbots happy 2014-06-27 18:38:12 +00:00
LTO Attempt at fixing the windows dll build. 2014-07-30 23:39:30 +00:00
MC Revert "Remove MCObjectDisassembler.cpp as it is untested and unused." as it is apparently used, but the build didn't return errors weirdly. 2014-07-31 21:18:38 +00:00
Object A std::unique_ptr case I missed in the previous patch. 2014-07-31 03:36:00 +00:00
Option Generic: add range-adapter for option parsing. 2014-07-09 13:03:37 +00:00
ProfileData Use std::unique_ptr to make the ownership explicit. 2014-07-31 03:12:45 +00:00
Support Remove dead code. 2014-07-25 19:06:39 +00:00
TableGen Don't fail tablegen immediately after failing to set a value. 2014-07-31 01:44:00 +00:00
Target Make sure no loads resulting from load->switch DAGCombine are marked invariant 2014-07-31 21:45:05 +00:00
Transforms Improve the remark generated for -Rpass-missed. 2014-07-31 21:22:22 +00:00
CMakeLists.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
LLVMBuild.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
Makefile ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00