- Aug 24, 2007
-
-
Chris Lattner authored
This eliminates a conditional on that path, and ensures ICmpInst/FCmpInst both have an out-of-line virtual method to home the class. llvm-svn: 41371
-
Dale Johannesen authored
llvm-svn: 41353
-
Dale Johannesen authored
Interface to rest of the compiler unchanged, as yet. llvm-svn: 41348
-
- Aug 21, 2007
-
-
Chris Lattner authored
same value which get RAUW'd. This speeds up reading the .bc file in PR1616 from 852s to 0.19s on my G5 with a debug build. llvm-svn: 41209
-
Chris Lattner authored
llvm-svn: 41205
-
- Aug 20, 2007
-
-
Dan Gohman authored
llvm-svn: 41190
-
Dan Gohman authored
use the ValueType name instead of the llvm type name, to match what the verifier expects. For integers these are the same, but for floating-point values the intrinsics use f32/f64 instead of float/double. llvm-svn: 41189
-
Chris Lattner authored
llvm-svn: 41173
-
- Aug 18, 2007
-
-
Chris Lattner authored
that don't use it don't have to pay the memory cost for the arguments. This allows us to avoid creating Argument nodes for many prototypes and for clients who lazily deserialize code from a bytecode file. llvm-svn: 41166
-
Chris Lattner authored
llvm-svn: 41165
-
- Aug 17, 2007
-
-
Dan Gohman authored
what they're supposed to be before using them. llvm-svn: 41130
-
- Aug 16, 2007
-
-
Dan Gohman authored
llvm-svn: 41128
-
- Aug 14, 2007
-
-
Devang Patel authored
llvm-svn: 41075
-
Devang Patel authored
llvm-svn: 41052
-
- Aug 13, 2007
-
-
Chris Lattner authored
Into: inttoptr (i64 0 to i8*) -> null This occurs in the example in PR1602. With this fixed, we now compile the example in PR1602 into fully "devirtualized" code: define void @_Z1g1S(%struct.S* noalias %s) { entry: %tmp131415 = getelementptr %struct.S* %s, i32 0, i32 0 ; <i32 (...)***> [#uses=1] %tmp16 = load i32 (...)*** %tmp131415, align 4 ; <i32 (...)**> [#uses=1] %tmp26277 = load i32 (...)** %tmp16 ; <i32 (...)*> [#uses=1] %tmp2829 = bitcast i32 (...)* %tmp26277 to void (%struct.S*)* ; <void (%struct.S*)*> [#uses=1] tail call void %tmp2829( %struct.S* %s ) ret void } This still has the vtable dispatch (as required) but does not have any pointer to method cruft left. llvm-svn: 41046
-
- Aug 10, 2007
-
-
Devang Patel authored
llvm-svn: 41001
-
Chris Lattner authored
llvm-svn: 40989
-
Chris Lattner authored
llvm-svn: 40981
-
Chris Lattner authored
llvm-svn: 40980
-
Dale Johannesen authored
to handle values bigger than double. If we assume host==target and host long double works correctly, this is not too bad, but we don't want to have that limitation longterm. I could implement accepting double constants as long double or something like that, which would lead to incorrect codegen with no errors; the more I think about that the worse it seems. Rather than do such a hack that would be backed out later, I'm settling for giving reasonable error messages, for now. llvm-svn: 40974
-
- Aug 08, 2007
-
-
Chris Lattner authored
1. domtree is a tree, not a graph. There is no need to avoid revisiting nodes with a set. 2. the worklist can contain the child iterator pointers so we don't get N^2 rescanning of children. This speeds up updateDFSNumbers significantly, making it basically free. On the testcase in PR1432, this speeds up loopsimplify by another 3x, dropping it from the 12th most expensive pass to the to the 30th. :) It used to be #1. llvm-svn: 40923
-
Chris Lattner authored
natural loop canonicalization (which does many cfg xforms) by 4.3x, for example. This also fixes a bug in postdom dfnumber computation. llvm-svn: 40920
-
- Aug 06, 2007
-
-
Chris Lattner authored
2. Make domtree printing print dfin/dfout #'s 3. Fix the Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll failure from last night (in DominanceFrontier::splitBlock). w.r.t. #3, my patches last night happened to expose the bug, but this has been broken since Owen's r35839 patch to LoopSimplify. The code was subsequently moved over from LoopSimplify into Dominators, carrying the latent bug. Fun stuff. llvm-svn: 40858
-
- Aug 05, 2007
-
-
Reid Spencer authored
llvm-svn: 40854
-
Reid Spencer authored
llvm-svn: 40849
-
Chris Lattner authored
llvm-svn: 40830
-
Chris Lattner authored
domtree by 10% and postdomtree by 17% llvm-svn: 40829
-
Chris Lattner authored
a smallptrset. This speeds up domtree by about 15% and postdomtree by 20%. llvm-svn: 40828
-
Chris Lattner authored
speeds up idom by about 45% and postidom by about 33%. Some extra precautions must be taken not to invalidate densemap iterators. llvm-svn: 40827
-
Chris Lattner authored
DenseMap instead of an std::map. This speeds up postdomtree by about 25% and domtree by about 23%. It also speeds up clients, for example, domfrontier by 11%, mem2reg by 4% and ADCE by 6%. llvm-svn: 40826
-
- Aug 04, 2007
-
-
Chandler Carruth authored
This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. llvm-svn: 40807
-
- Aug 03, 2007
-
-
Dale Johannesen authored
llvm-svn: 40793
-
Dale Johannesen authored
llvm-svn: 40774
-
- Aug 02, 2007
-
-
Devang Patel authored
exit edge to preserve LCSSA. Fix dominance frontier update during loop unswitch. This fixes PR 1589, again llvm-svn: 40737
-
Devang Patel authored
llvm-svn: 40698
-
Devang Patel authored
exit edge to preserve LCSSA. Fix dominance frontier update during loop unswitch. This fixes PR 1589. llvm-svn: 40695
-
- Aug 01, 2007
-
-
David Greene authored
New CallInst interface to address GLIBCXX_DEBUG errors caused by indexing an empty std::vector. Updates to all clients. llvm-svn: 40660
-
- Jul 31, 2007
-
-
Reid Spencer authored
permitted on function results. So, revert the last patch to make it illegal. llvm-svn: 40632
-
Reid Spencer authored
front end converts regparm attribute on the gcc function into InReg attribute on the llvm function. This fixes test/CFrontend/2002-07-30-SubrefSetAssertion.c llvm-svn: 40618
-
- Jul 30, 2007
-
-
Dan Gohman authored
llvm-svn: 40588
-