llvm-6502/include/llvm
Chris Lattner 05e15f8897 Switch GVN and memdep to use PHITransAddr, which correctly handles
phi translation of complex expressions like &A[i+1].  This has the
following benefits:

1. The phi translation logic is all contained in its own class with
   a strong interface and verification that it is self consistent.

2. The logic is more correct than before.  Previously, if intermediate
   expressions got PHI translated, we'd miss the update and scan for
   the wrong pointers in predecessor blocks.  @phi_trans2 is a testcase
   for this.

3. We have a lot less code in memdep.

We can handle phi translation across blocks of things like @phi_trans3,
which is pretty insane :).

This patch should fix the miscompiles of 255.vortex, and I tested it 
with a bootstrap of llvm-gcc, llvm-test and dejagnu of course.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90926 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-09 01:59:31 +00:00
..
ADT remove extraneous comma clang warns about 2009-12-06 16:58:41 +00:00
Analysis Switch GVN and memdep to use PHITransAddr, which correctly handles 2009-12-09 01:59:31 +00:00
Assembly
Bitcode Pass StringRef by value. 2009-11-06 10:58:06 +00:00
CodeGen Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes. 2009-12-09 01:36:00 +00:00
CompilerDriver Deprecate 'unpack_values'. 2009-12-07 18:25:54 +00:00
Config Add CMake and configure logic to create llvm/Config/Disassemblers.defs. 2009-11-25 04:30:13 +00:00
ExecutionEngine Add ability to set code model within the execution engine builders 2009-11-17 21:58:16 +00:00
MC Pass StringRef by value. 2009-11-06 10:58:06 +00:00
Support Add helper methods for forming shift operations with a constant 2009-12-06 01:56:22 +00:00
System Removed VC++ compatibility code from DataTypes.h.in. 2009-12-08 02:49:54 +00:00
Target Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes. 2009-12-09 01:36:00 +00:00
Transforms Pull LLVMContext out of PromoteMemToReg. 2009-11-23 03:50:44 +00:00
AbstractTypeUser.h
Argument.h
Attributes.h
AutoUpgrade.h
BasicBlock.h Silence a warning on targets with unsigned chars. 2009-11-12 17:59:45 +00:00
CallGraphSCCPass.h
CallingConv.h Add MSP430 interrupt calling conv. No functionality change yet. 2009-12-07 02:27:35 +00:00
CMakeLists.txt
Constant.h the verifier shouldn't modify the IR. 2009-11-01 18:11:50 +00:00
Constants.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
DerivedTypes.h
Function.h mark getIntrinsicID() 'readonly'. This allows various classof methods 2009-11-15 19:56:28 +00:00
GlobalAlias.h
GlobalValue.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
GlobalVariable.h In GlobalVariable::setInitializer, assert that the initializer has the 2009-11-17 00:43:13 +00:00
InlineAsm.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
InstrTypes.h Add CreateNUWAdd and CreateNUWSub to complement the existing CreateNSWAdd and 2009-11-12 02:08:11 +00:00
Instruction.def rename indbr -> indirectbr to appease the residents of #llvm. 2009-10-28 00:19:10 +00:00
Instruction.h Factor out redundancy from clone() implementations. 2009-10-27 22:16:29 +00:00
Instructions.h Re-commit r86077 now that r86290 fixes the 179.art and 175.vpr ARM regressions. 2009-11-07 00:16:28 +00:00
IntrinsicInst.h Introduce the "@llvm.dbg.value" debug intrinsic. 2009-12-07 19:36:34 +00:00
Intrinsics.h
Intrinsics.td Introduce the "@llvm.dbg.value" debug intrinsic. 2009-12-07 19:36:34 +00:00
IntrinsicsAlpha.td
IntrinsicsARM.td
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td
IntrinsicsX86.td Remove the gcc builtins from the intrinsics, we'll lower them 2009-12-01 03:18:26 +00:00
IntrinsicsXCore.td
LinkAllPasses.h remove the now dead condprop pass, PR3906. 2009-11-11 05:56:35 +00:00
LinkAllVMCore.h improve portability to avoid conflicting with std::next in c++'0x. 2009-12-03 00:50:42 +00:00
Linker.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
LLVMContext.h
Metadata.h Fix typos in comments. 2009-11-30 23:30:43 +00:00
Module.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
ModuleProvider.h
OperandTraits.h
Operator.h
Pass.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
PassAnalysisSupport.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
PassManager.h Reverting 85714, 85715, 85716, which are breaking the build 2009-11-01 16:42:53 +00:00
PassManagers.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
PassSupport.h
SymbolTableListTraits.h
Type.h Type.h doesn't need to #include LLVMContext.h 2009-10-27 17:08:31 +00:00
TypeSymbolTable.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
Use.h
User.h
Value.h Move the FixedStackPseudoSourceValueVal enum value before InstructionVal 2009-11-13 22:24:13 +00:00
ValueSymbolTable.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00