- Mar 09, 2008
-
-
Nick Lewycky authored
Add the ability to remove just one instance of a BB from a phi node. This fixes the compile error in the tree now. llvm-svn: 48085
-
- Mar 07, 2008
-
-
Devang Patel authored
llvm-svn: 48020
-
- Mar 05, 2008
-
-
Devang Patel authored
llvm-svn: 47965
-
Devang Patel authored
llvm-svn: 47924
-
- Mar 04, 2008
-
-
Devang Patel authored
llvm-svn: 47909
-
Devang Patel authored
Update test to use multiple return value directly, instead of relying on -sretpromotion. llvm-svn: 47907
-
Devang Patel authored
llvm-svn: 47904
-
- Feb 20, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 47375
-
Anton Korobeynikov authored
llvm-svn: 47371
-
- Feb 19, 2008
-
-
Chris Lattner authored
llvm-svn: 47323
-
- Feb 18, 2008
-
-
Chris Lattner authored
this speeds it up 2.3% on eon. llvm-svn: 47261
-
- Feb 14, 2008
-
-
Chris Lattner authored
llvm-svn: 47129
-
- Feb 05, 2008
-
-
Chris Lattner authored
check more intelligent. This speeds up mem2reg from 5.29s to 0.79s on a synthetic testcase with tons of predecessors and phi nodes. llvm-svn: 46767
-
- Jan 27, 2008
-
-
Duncan Sands authored
longer allowed to write through byval arguments. llvm-svn: 46416
-
- Jan 26, 2008
-
-
Duncan Sands authored
when inlining a readonly function. llvm-svn: 46393
-
- Jan 25, 2008
-
-
Duncan Sands authored
llvm-svn: 46369
-
- Jan 12, 2008
-
-
Chris Lattner authored
inlining a function if we know that the function does not write to *any* memory. This implements test/Transforms/Inline/byval2.ll llvm-svn: 45912
-
- Jan 11, 2008
-
-
Chris Lattner authored
copy of it in case the callee modifies the struct. llvm-svn: 45853
-
- Jan 03, 2008
-
-
Chris Lattner authored
could theoretically introduce a trap, but is also a performance issue. This speeds up ptrdist/ks by 8%. llvm-svn: 45533
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
Chris Lattner authored
llvm-svn: 45415
-
Chris Lattner authored
have potential side-effects. llvm-svn: 45392
-
- Dec 25, 2007
-
-
Gordon Henriksen authored
define void @f() { ... call i32 @g() ... } define void @g() { ... } The hazards are: - @f and @g have GC, but they differ GC. Inlining is invalid. This may never occur. - @f has no GC, but @g does. g's GC must be propagated to @f. The other scenarios are safe: - @f and @g have the same GC. - @f and @g have no GC. - @g has no GC. This patch adds inliner checks for the former two scenarios. llvm-svn: 45351
-
- Dec 22, 2007
-
-
Devang Patel authored
not merge current bb and succ even if bb's terminator is unconditional branch to succ. llvm-svn: 45305
-
- Dec 19, 2007
-
-
Duncan Sands authored
calls 'nounwind'. It is important for correct C++ exception handling that nounwind markings do not get lost, so this transformation is actually needed for correctness. llvm-svn: 45218
-
- Dec 18, 2007
-
-
Duncan Sands authored
doesNotThrow. llvm-svn: 45160
-
- Dec 17, 2007
-
-
Duncan Sands authored
how to lower them (with no attempt made to be efficient, since they should only occur for unoptimized code). llvm-svn: 45108
-
David Greene authored
GLIBCXX_DEBUG fix. std::vector<>::end() is invalidated by erase. llvm-svn: 45101
-
Christopher Lamb authored
Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space. llvm-svn: 45082
-
- Dec 16, 2007
-
-
Duncan Sands authored
changed not to reject invoke of inline asm. llvm-svn: 45077
-
Duncan Sands authored
calls. Remove special casing of inline asm from the inliner. There is a potential problem: the verifier rejects invokes of inline asm (not sure why). If an asm call is not marked "nounwind" in some .ll, and instcombine is not run, but the inliner is run, then an illegal module will be created. This is bad but I'm not sure what the best approach is. I'm tempted to remove the check in the verifier... llvm-svn: 45073
-
- Dec 10, 2007
-
-
Chris Lattner authored
Reimplement the xform in Analysis/ConstantFolding.cpp where we can use targetdata to validate that it is safe. While I'm in there, fix some const correctness issues and generalize the interface to the "operand folder". llvm-svn: 44817
-
Gordon Henriksen authored
methods are new to Function: bool hasCollector() const; const std::string &getCollector() const; void setCollector(const std::string &); void clearCollector(); The assembly representation is as such: define void @f() gc "shadow-stack" { ... The implementation uses an on-the-side table to map Functions to collector names, such that there is no overhead. A StringPool is further used to unique collector names, which are extremely likely to be unique per process. llvm-svn: 44769
-
- Dec 03, 2007
-
-
Duncan Sands authored
throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). llvm-svn: 44544
-
- Nov 27, 2007
-
-
Duncan Sands authored
the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. llvm-svn: 44359
-
Owen Anderson authored
Make LoopInfoBase more generic, in preparation for having MachineLoopInfo. This involves a small interface change. llvm-svn: 44348
-
- Nov 09, 2007
-
-
Anton Korobeynikov authored
llvm-svn: 43941
-
Anton Korobeynikov authored
llvm-svn: 43940
-
Anton Korobeynikov authored
llvm-svn: 43939
-
- Nov 04, 2007
-
-
Gordon Henriksen authored
Also cleaned up some comments in source files. llvm-svn: 43674
-