llvm-6502/lib/VMCore
Duncan Sands c43cee3fbb Move some shift transforms out of instcombine and into InstructionSimplify.
While there, I noticed that the transform "undef >>a X -> undef" was wrong.
For example if X is 2 then the top two bits must be equal, so the result can
not be anything.  I fixed this in the constant folder as well.  Also, I made
the transform for "X << undef" stronger: it now folds to undef always, even
though X might be zero.  This is in accordance with the LangRef, but I must
admit that it is fairly aggressive.  Also, I added "i32 X << 32 -> undef"
following the LangRef and the constant folder, likewise fairly aggressive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123417 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14 00:37:45 +00:00
..
AsmWriter.cpp First step in fixing PR8927: 2011-01-08 16:42:36 +00:00
Attributes.cpp
AutoUpgrade.cpp
BasicBlock.cpp
CMakeLists.txt
ConstantFold.cpp Move some shift transforms out of instcombine and into InstructionSimplify. 2011-01-14 00:37:45 +00:00
ConstantFold.h
Constants.cpp
ConstantsContext.h FixedNumOperandTraits and VariadicOperandTraits assumed that, given a 2011-01-11 15:07:38 +00:00
Core.cpp
DebugLoc.cpp
Dominators.cpp make domtree verification print something useful on failure. 2011-01-08 19:55:55 +00:00
Function.cpp
Globals.cpp
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp
Instructions.cpp Simplify the allocation and freeing of Users' operand lists, now that 2011-01-07 20:29:02 +00:00
IntrinsicInst.cpp
IRBuilder.cpp add methods to IRBuilder to create memcpy/memset/memmove. 2010-12-26 22:49:25 +00:00
LeakDetector.cpp
LeaksContext.h
LLVMContext.cpp
LLVMContextImpl.cpp
LLVMContextImpl.h
Makefile
Metadata.cpp
Module.cpp
Pass.cpp
PassManager.cpp
PassRegistry.cpp Silence a warning from non-standard warning avoidance code. 2011-01-05 21:50:21 +00:00
PrintModulePass.cpp
SymbolTableListTraitsImpl.h
Type.cpp Change all self assignments X=X to (void)X, so that we can turn on a 2010-12-23 00:58:24 +00:00
TypesContext.h Change all self assignments X=X to (void)X, so that we can turn on a 2010-12-23 00:58:24 +00:00
TypeSymbolTable.cpp
Use.cpp Simplify the allocation and freeing of Users' operand lists, now that 2011-01-07 20:29:02 +00:00
Value.cpp Change all self assignments X=X to (void)X, so that we can turn on a 2010-12-23 00:58:24 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp Reject uses of unnamed_addr in declarations. 2011-01-13 01:30:30 +00:00