- Jan 30, 2007
-
-
Reid Spencer authored
confusion with external linkage types. llvm-svn: 33663
-
- Jan 29, 2007
-
-
Nick Lewycky authored
Fix initializeConstant, now initializeInt. Fixes major performance bottleneck. X == Y || X->DominatedBy(Y) is redundant. Remove the X == Y part. Fix crasher in makeEqual where getOrInsertNode would add a new constant, producing an NE relationship between the two members we're trying to make equal. This now allows us to mark more BBs as unreachable. llvm-svn: 33612
-
- Jan 28, 2007
-
-
Anton Korobeynikov authored
1. New parameter attribute called 'inreg'. It has meaning "place this parameter in registers, if possible". This is some generalization of gcc's regparm(n) attribute. It's currently used only in X86-32 backend. 2. Completely rewritten CC handling/lowering code inside X86 backend. Merged stdcall + c CCs and fastcall + fast CC. 3. Dropped CSRET CC. We cannot add struct return variant for each target-specific CC (e.g. stdcall + csretcc and so on). 4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in on first attribute has meaning 'This is hidden pointer to structure return. Handle it gently'. 5. Fixed small bug in llvm-extract + add new feature to FunctionExtraction pass, which relinks all internal-linkaged callees from deleted function to external linkage. This will allow further linking everything together. NOTEs: 1. Documentation will be updated soon. 2. llvm-upgrade should be improved to translate csret => sret. Before this, there will be some unexpected test fails. llvm-svn: 33597
-
Chris Lattner authored
Mozilla that Anton tracked down. llvm-svn: 33591
-
- Jan 26, 2007
-
-
Jim Laskey authored
for debugging and exception handling. llvm-svn: 33550
-
Reid Spencer authored
The Module::setEndianness and Module::setPointerSize methods have been removed. Instead you can get/set the DataLayout. Adjust thise accordingly. llvm-svn: 33530
-
Devang Patel authored
llvm-svn: 33514
-
Devang Patel authored
llvm-svn: 33511
-
- Jan 25, 2007
-
-
Chris Lattner authored
code. llvm-svn: 33500
-
- Jan 22, 2007
-
-
Reid Spencer authored
changes: (1) don't special case for i1 any more, (2) use the new TargetData::getTypeSizeInBits method to ensure source and dest are the same bit width. llvm-svn: 33427
-
- Jan 21, 2007
-
-
Reid Spencer authored
Clean up handling of isFloatingPoint() and dealing with PackedType. Patch by Gordon Henriksen! llvm-svn: 33415
-
Reid Spencer authored
We only want to do this if the src and destination types have the same bit width. This patch uses TargetData::getTypeSizeInBits() instead of making a special case for integer types and avoiding the transform if they don't match. llvm-svn: 33414
-
- Jan 20, 2007
-
-
Chris Lattner authored
these alignment amounts to align scalars when we can. Patch by Scott Michel! llvm-svn: 33409
-
Owen Anderson authored
llvm-svn: 33397
-
- Jan 19, 2007
-
-
Reid Spencer authored
don't allow the transform if V and the pointer's element type are different width integer types. llvm-svn: 33371
-
Reid Spencer authored
This is the final patch for this PR. It implements some minor cleanup in the use of IntegerType, to wit: 1. Type::getIntegerTypeMask -> IntegerType::getBitMask 2. Type::Int*Ty changed to IntegerType* from Type* 3. ConstantInt::getType() returns IntegerType* now, not Type* This also fixes PR1120. Patch by Sheng Zhou. llvm-svn: 33370
-
- Jan 18, 2007
-
-
Chris Lattner authored
infinitely loops. llvm-svn: 33343
-
Reid Spencer authored
transform. Change some variable names so it is clear what is source and what is dest of the cast. Also, add an assert to ensure that the integer to integer case is asserting if the bitwidths are different. This prevents illegal casts from being formed and catches bitwidth bugs sooner. llvm-svn: 33337
-
- Jan 17, 2007
-
-
Reid Spencer authored
Adjust the use of SetVector for changes in SetVector's interface. Patch by Gordon Henriksen. llvm-svn: 33280
-
- Jan 15, 2007
-
-
Chris Lattner authored
because TargetData::getTypeSize() returns the same for i1 and i8. This fix is not right for the full generality of bitwise types, but it fixes the regression. llvm-svn: 33237
-
Nick Lewycky authored
the basic block and is stable across runs in gdb or valgrind. Make Node::update handle edges which dominate and are tighter than existing edges. Replace makeEqual's "squeeze theorem" code. Fixes miscompilation. Gate the calls to defToOps and opsToDef. Before this, we were getting IG edges about values which weren't even defined in the dominated area. This reduces the size of the IG by about half. llvm-svn: 33236
-
Chris Lattner authored
induction variables. llvm-svn: 33234
-
Chris Lattner authored
llvm-svn: 33232
-
Chris Lattner authored
often kicks in for ?: expressions. llvm-svn: 33231
-
Chris Lattner authored
rename Type::getIntegralTypeMask to Type::getIntegerTypeMask. This makes naming much more consistent. For example, there are now no longer any instances of IntegerType that are not considered isInteger! :) llvm-svn: 33225
-
Chris Lattner authored
llvm-svn: 33218
-
Chris Lattner authored
llvm-svn: 33210
-
- Jan 14, 2007
-
-
Chris Lattner authored
NANs. This fixes PR1111 and Transforms/InstCombine/2007-01-14-FcmpSelf.ll llvm-svn: 33208
-
Chris Lattner authored
more careful about unreachable code when updating dominator info. llvm-svn: 33204
-
Chris Lattner authored
of PR1107 llvm-svn: 33185
-
- Jan 13, 2007
-
-
Reid Spencer authored
llvm-svn: 33184
-
Nick Lewycky authored
that properties were being applied where they didn't belong. Fixes crash in new MiBench testcase. Also mark debugging code as such in #ifdef. llvm-svn: 33177
-
Chris Lattner authored
llvm-svn: 33175
-
Chris Lattner authored
llvm-svn: 33164
-
- Jan 12, 2007
-
-
Chris Lattner authored
llvm-svn: 33150
-
Chris Lattner authored
llvm-svn: 33147
-
Chris Lattner authored
llvm-svn: 33132
-
Chris Lattner authored
llvm-svn: 33129
-
Reid Spencer authored
Implement the arbitrary bit-width integer feature. The feature allows integers of any bitwidth (up to 64) to be defined instead of just 1, 8, 16, 32, and 64 bit integers. This change does several things: 1. Introduces a new Derived Type, IntegerType, to represent the number of bits in an integer. The Type classes SubclassData field is used to store the number of bits. This allows 2^23 bits in an integer type. 2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and 64-bit integers. These are replaced with just IntegerType which is not a primitive any more. 3. Adjust the rest of LLVM to account for this change. Note that while this incremental change lays the foundation for arbitrary bit-width integers, LLVM has not yet been converted to actually deal with them in any significant way. Most optimization passes, for example, will still only deal with the byte-width integer types. Future increments will rectify this situation. llvm-svn: 33113
-
Reid Spencer authored
recommended that getBoolValue be replaced with getZExtValue and that get(bool) be replaced by get(const Type*, uint64_t). This implements those changes. llvm-svn: 33110
-