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 Use MemoryBuffer::getBufferIdentifier() in the AsmPrinter instead 2009-09-08 22:20:35 +00:00
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 When a constant's type is refined, update the constant in place 2009-09-15 15:58:07 +00:00
Argument.h Initial update to VMCore to use Twines for string arguments. 2009-07-25 04:41:11 +00:00
Attributes.h Add an 'inline hint' attribute to represent source 2009-08-26 01:08:21 +00:00
AutoUpgrade.h Reapply 79977. 2009-08-28 23:24:31 +00:00
BasicBlock.h Silence a warning on targets with unsigned chars. 2009-11-12 17:59:45 +00:00
CallGraphSCCPass.h Fix some nasty callgraph dangling pointer problems in 2009-08-31 00:19:58 +00:00
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 Actually privatize a IntegerTypes, and fix a few bugs exposed by this. 2009-08-13 23:27:32 +00:00
Function.h mark getIntrinsicID() 'readonly'. This allows various classof methods 2009-11-15 19:56:28 +00:00
GlobalAlias.h Public and private corrections, warned about by icc (#304). 2009-09-06 08:55:57 +00:00
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 Make LLVMContext and LLVMContextImpl classes instead of structs. 2009-08-11 17:45:13 +00:00
Intrinsics.td Introduce the "@llvm.dbg.value" debug intrinsic. 2009-12-07 19:36:34 +00:00
IntrinsicsAlpha.td
IntrinsicsARM.td Add new intrinsics for Neon vldN_lane and vstN_lane operations. 2009-08-22 02:28:46 +00:00
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 Derive metadata hierarchy from Value instead of User. 2009-10-21 23:57:35 +00:00
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 Public and private corrections, warned about by icc (#304). 2009-09-06 08:55:57 +00:00
Operator.h Remove a bunch of unused arguments from functions, silencing a 2009-10-14 20:28:33 +00:00
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 Add required #includes for freestanding .h files. 2009-10-17 03:28:07 +00:00
SymbolTableListTraits.h Forward-declare ValueSymbolTable so that SymbolTableListTraits.h can be parsed by itself 2009-09-30 00:08:25 +00:00
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 eliminate all 80-col violations that I have introduced in my recent checkins (and some others more) 2009-08-27 23:44:33 +00:00
User.h Remove some dead functions, patch by Ryan Flynn! 2009-07-14 18:58:35 +00:00
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