llvm-6502/lib/Transforms/InstCombine
David Blaikie 4e933df738 Opaque Pointer Types: GEP API migrations to specify the gep type explicitly
The changes to InstCombine (& SCEV) do seem a bit silly - it doesn't make
anything obviously better to have the caller access the pointers element
type (the thing I'm trying to remove) than the GEP itself, but it's a
helpful migration step. This will allow me to more obviously lock down
GEP (& Load, etc) API usage, then fix all the code that accesses pointer
element types except the places that need to be removed (most of the
InstCombines) anyway - at which point I'll need to just remove all that
code because it won't be meaningful anymore (there will be no pointer
types, so no bitcasts to combine)

SCEV looks like it'll need some restructuring - we'll have to do a bit
more work for GEP canonicalization, since it'll depend on how it's used
if we can even manage to canonicalize it to a non-ugly GEP. I guess we
can do some fun stuff like voting (do 2 out of 3 load from the GEP with
a certain type that gives a pretty GEP? Does every typed use of the GEP
use either a specific type or a generic type (i8*, etc)?)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233131 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-24 23:34:31 +00:00
..
CMakeLists.txt
InstCombineAddSub.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
InstCombineAndOrXor.cpp [ConstantRange] Split makeICmpRegion in two. 2015-03-18 00:41:24 +00:00
InstCombineCalls.cpp optimize the AVX2 (integer) version of vperm2 into a shuffle 2015-03-24 22:39:29 +00:00
InstCombineCasts.cpp Opaque Pointer Types: GEP API migrations to specify the gep type explicitly 2015-03-24 23:34:31 +00:00
InstCombineCompares.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
InstCombineInternal.h Fix an infinite loop in InstCombine when an instruction with no users and side effects can be constant folded. 2015-03-10 05:13:47 +00:00
InstCombineLoadStoreAlloca.cpp Update InstCombine to transform aggregate stores into scalar stores. 2015-03-14 22:19:33 +00:00
InstCombineMulDivRem.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
InstCombinePHI.cpp [opaque pointer type] Start migrating GEP creation to explicitly specify the pointee type 2015-03-14 01:53:18 +00:00
InstCombineSelect.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
InstCombineShifts.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
InstCombineSimplifyDemanded.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
InstCombineVectorOps.cpp [opaque pointer type] more gep API migrations 2015-03-14 19:24:04 +00:00
InstructionCombining.cpp Opaque Pointer Types: GEP API migrations to specify the gep type explicitly 2015-03-24 22:38:16 +00:00
LLVMBuild.txt
Makefile