llvm/lib/VMCore
Dan Gohman 0f5efe5625 Remove SCEVAllocSizeExpr and SCEVFieldOffsetExpr, and in their place
use plain SCEVUnknowns with ConstantExpr::getSizeOf and
ConstantExpr::getOffsetOf constants. This eliminates a bunch of
special-case code.

Also add code for pattern-matching these expressions, for clients that
want to recognize them.

Move ScalarEvolution's logic for expanding array and vector sizeof
expressions into an element count times the element size, to expose
the multiplication to subsequent folding, into the regular constant
folder.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94737 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-28 02:15:55 +00:00
..
AsmWriter.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
Attributes.cpp Remove the InlineHint attribute. There are no current or planned 2010-01-15 21:36:30 +00:00
AutoUpgrade.cpp Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). 2010-01-15 19:04:09 +00:00
BasicBlock.cpp Qualify a bunch of explicit template instantiations to satisfy clang++. 2009-12-19 00:55:12 +00:00
CMakeLists.txt Update CMake build. 2010-01-27 20:44:12 +00:00
ConstantFold.cpp Remove SCEVAllocSizeExpr and SCEVFieldOffsetExpr, and in their place 2010-01-28 02:15:55 +00:00
ConstantFold.h Value* were never meant to be const. Removing constness from the constant 2009-09-20 01:35:59 +00:00
Constants.cpp Remove SCEVAllocSizeExpr and SCEVFieldOffsetExpr, and in their place 2010-01-28 02:15:55 +00:00
ConstantsContext.h Fix a build error and change errs() to dbgs(). 2010-01-05 01:34:26 +00:00
Core.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
Dominators.cpp Qualify a bunch of explicit template instantiations to satisfy clang++. 2009-12-19 00:55:12 +00:00
Function.cpp Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer. 2010-01-05 13:12:22 +00:00
Globals.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
GVMaterializer.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
InlineAsm.cpp Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer. 2010-01-05 13:12:22 +00:00
Instruction.cpp Add a comment. 2010-01-04 18:38:39 +00:00
Instructions.cpp fix CastInst::castIsValid to reject aggregate types, fixing PR6153: 2010-01-26 21:51:43 +00:00
IntrinsicInst.cpp Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). 2010-01-15 19:04:09 +00:00
IRBuilder.cpp Final step in the metadata API restructuring: move the 2009-12-29 09:01:33 +00:00
LeakDetector.cpp remove a bunch of locking from LLVMContextImpl. Since only one thread 2009-11-01 18:42:03 +00:00
LeaksContext.h Catch more cases of a pointer being marked garbage twice. This helps when 2009-12-18 20:35:38 +00:00
LLVMContext.cpp Final step in the metadata API restructuring: move the 2009-12-29 09:01:33 +00:00
LLVMContextImpl.h Final step in the metadata API restructuring: move the 2009-12-29 09:01:33 +00:00
Makefile mark some libraries that currently require RTTI. 2010-01-24 20:22:08 +00:00
Metadata.cpp Add MDNode::getIfExists(), an efficient way to determine if a value is used by metadata (since metadata does not appear in a value's use list) 2010-01-26 02:36:35 +00:00
Module.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
Pass.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
PassManager.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
PrintModulePass.cpp Change errs() to dbgs(). 2010-01-05 01:30:18 +00:00
SymbolTableListTraitsImpl.h Fold the useful features of alist and alist_node into ilist, and 2008-07-28 21:51:04 +00:00
Type.cpp Convert a ton of simple integer type equality tests to the new predicate. 2010-01-05 20:07:06 +00:00
TypesContext.h Change errs() to dbgs(). 2010-01-05 01:29:39 +00:00
TypeSymbolTable.cpp Change errs() to dbgs(). 2010-01-05 01:30:14 +00:00
Use.cpp Public and private corrections, warned about by icc (#304). 2009-09-06 08:55:57 +00:00
Value.cpp Change Value::getUnderlyingObject to have the MaxLookup value specified as a 2010-01-25 18:26:54 +00:00
ValueSymbolTable.cpp Delete NamedMDSymTable while destrucing Module. 2010-01-09 01:44:59 +00:00
ValueTypes.cpp Reapply 79977. 2009-08-28 23:24:31 +00:00
Verifier.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00