llvm-6502/lib
Dan Gohman 97b44f9b80 Use ConstantExpr::getExtractElement when constant-folding vectors
instead of getAggregateElement. This has the advantage of being
more consistent and allowing higher-level constant folding to
procede even if an inner extract element cannot be folded.

Make ConstantFoldInstruction call ConstantFoldConstantExpression
on the instruction's operands, making it more consistent with 
ConstantFoldConstantExpression itself. This makes sure that
ConstantExprs get TargetData-aware folding before being handed
off as operands for further folding.

This causes more expressions to be folded, but due to a known
shortcoming in constant folding, this currently has the side effect
of stripping a few more nuw and inbounds flags in the non-targetdata
side of constant-fold-gep.ll. This is mostly harmless.

This fixes rdar://11324230.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155682 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-27 00:54:36 +00:00
..
Analysis Use ConstantExpr::getExtractElement when constant-folding vectors 2012-04-27 00:54:36 +00:00
Archive
AsmParser
Bitcode
CodeGen Fix the SD scheduler to avoid gluing the same node twice. 2012-04-26 21:48:25 +00:00
DebugInfo
ExecutionEngine
Linker Add a flag to the struct type finder to collect only those types which have 2012-04-21 23:59:16 +00:00
MC
Object
Support [Support/YAML] Properly fix unitialized variable warning by inserting a 2012-04-26 19:27:11 +00:00
TableGen Fix copy/paste-o. 2012-04-18 18:09:53 +00:00
Target ARM: Thumb ldr(literal) base address alignment is 32-bits. 2012-04-26 20:48:12 +00:00
Transforms Break up getProfitableChainIncrement(). 2012-04-26 23:33:11 +00:00
VMCore Use ConstantExpr::getExtractElement when constant-folding vectors 2012-04-27 00:54:36 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile