1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/lib/VMCore
Dan Gohman 0b2c2769ba Generalize target-independent folding rules for sizeof to handle more
cases, and implement target-independent folding rules for alignof and
offsetof. Also, reassociate reassociative operators when it leads to
more folding.

Generalize ScalarEvolution's isOffsetOf to recognize offsetof on
arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr
to getOffsetOfExpr, for consistency with analagous ConstantExpr routines.

Make the target-dependent folder promote GEP array indices to
pointer-sized integers, to make implicit casting explicit and exposed
to subsequent folding.

And add a bunch of testcases for this new functionality, and a bunch
of related existing functionality.

llvm-svn: 94987
2010-02-01 18:27:38 +00:00
..
AsmWriter.cpp Print a comment next to "materializable" global values, to distinguish 2010-01-29 23:12:36 +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 Generalize target-independent folding rules for sizeof to handle more 2010-02-01 18:27:38 +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 Add a getNUWMul function. 2010-02-01 16:38:14 +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
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