llvm/lib/Transforms/Scalar
Chris Lattner ddfa57bd7b Instcombine should not promote whole computation trees to "strange"
integer types, unless they are already strange.  This prevents it from
turning the code produced by SROA into crazy libcalls and stuff that 
the code generator can't handle.  In the attached example, the result
was an i96 multiply that caused the x86 backend to assert.

Note that if TargetData had an idea of what the legal types are for
a target that this could be used to stop instcombine from introducing
i64 muls, as Scott wanted.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68598 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08 05:41:03 +00:00
..
ADCE.cpp Re-commit 65975 and a fix for the problem that 2009-03-04 21:24:04 +00:00
BasicBlockPlacement.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
CMakeLists.txt CMake: updated list of source files. 2008-11-05 00:11:22 +00:00
CodeGenPrepare.cpp remove empty section 2009-04-07 02:55:53 +00:00
CondPropagate.cpp Add comment to emphasize that the while body is empty. 2009-03-05 01:08:35 +00:00
ConstantProp.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
DCE.cpp Eliminate several more unnecessary intptr_t casts. 2009-02-18 05:09:16 +00:00
DeadStoreElimination.cpp Rename getABITypeSize to getTypePaddedSize, as 2009-01-12 20:38:59 +00:00
GVN.cpp Reapply r68211, with the miscompilations it caused fixed. 2009-04-01 23:53:49 +00:00
GVNPRE.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
IndVarSimplify.cpp Rename ScalarEvolution's getIterationCount to getBackedgeTakenCount, 2009-02-24 18:55:53 +00:00
InstructionCombining.cpp Instcombine should not promote whole computation trees to "strange" 2009-04-08 05:41:03 +00:00
JumpThreading.cpp Fix a debug info dependency in jump threading. 2009-03-17 00:38:24 +00:00
LICM.cpp Revert r67798: it breaks llvm-gcc bootstrap on x86-64-linux, presumably due to 2009-03-27 14:56:47 +00:00
LoopDeletion.cpp Rename ScalarEvolution's getIterationCount to getBackedgeTakenCount, 2009-02-24 18:55:53 +00:00
LoopIndexSplit.cpp Loop Index Split can eliminate a loop if it can determin if loop body is executed only once. There was a bug in determining IV based value of the iteration for which the loop body is executed. Fix it. 2009-03-30 22:24:10 +00:00
LoopRotation.cpp Do not count DbgInfoIntrinsic while estimating loop header size. 2009-03-06 03:51:30 +00:00
LoopStrengthReduce.cpp LSR shouldn't ever try to hack on integer IV's larger than 64-bits. Right now 2009-03-17 23:58:30 +00:00
LoopUnroll.cpp Rename getAnalysisToUpdate to getAnalysisIfAvailable. 2009-01-28 13:14:17 +00:00
LoopUnswitch.cpp Remove strange extra semicolons. 2009-03-19 05:51:39 +00:00
Makefile Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
MemCpyOptimizer.cpp Remove strange extra semicolons. 2009-03-19 05:51:39 +00:00
PredicateSimplifier.cpp Silence unused variable warnings. 2008-11-21 20:00:59 +00:00
Reassociate.cpp Make the key of ValueRankMap an AssertingVH, so that we die violently 2009-03-31 22:13:29 +00:00
Reg2Mem.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
Scalar.cpp add a bunch more passes to the C bindings (PR3734), patch by 2009-03-06 16:52:18 +00:00
ScalarReplAggregates.cpp Explicitly check for StoreInst, do not lose the chance to delete 2009-03-18 12:48:48 +00:00
SCCP.cpp Factorize out a concept - no functionality change. 2009-03-21 21:27:31 +00:00
SimplifyCFGPass.cpp Revert r66920. It was causing failures in the self-hosting buildbot (in release 2009-03-13 21:15:59 +00:00
SimplifyHalfPowrLibCalls.cpp eliminate warning when asserts disabled. 2008-12-14 21:36:23 +00:00
SimplifyLibCalls.cpp Let the strcat optimizer return the pointer to the start of the buffer, 2009-04-06 13:06:48 +00:00
TailDuplication.cpp simplify code. 2008-11-27 22:56:14 +00:00
TailRecursionElimination.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00