| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
constant whose component type is not a legal type for the target.
(If the target ConstantPool cannot handle this type either, it has
an opportunity to merge elements. In practice any target with
8-bit bytes must support i8 *as data*). 7320806 (partial).
llvm-svn: 86751
|
| |
|
|
| |
llvm-svn: 86748
|
| |
|
|
| |
llvm-svn: 86739
|
| |
|
|
|
|
| |
into libanalysis and transformutils.
llvm-svn: 86735
|
| |
|
|
| |
llvm-svn: 86732
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generates a sequence similar to this:
__Z4funci:
LFB2:
mflr r0
LCFI0:
stmw r30,-8(r1)
LCFI1:
stw r0,8(r1)
LCFI2:
stwu r1,-80(r1)
LCFI3:
mr r30,r1
LCFI4:
where LCFI3 and LCFI4 are used by the FDE to indicate what the FP, LR, and other
things are. We generated something more like this:
Leh_func_begin1:
mflr r0
stw r31, 20(r1)
stw r0, 8(r1)
Llabel1:
stwu r1, -80(r1)
Llabel2:
mr r31, r1
Note that we are missing the "mr" instruction. This patch makes it more like the
GCC output.
llvm-svn: 86729
|
| |
|
|
|
|
| |
Update InsertDeclare to return newly inserted llvm.dbg.declare intrinsic.
llvm-svn: 86727
|
| |
|
|
|
|
| |
tracked down by Stephan Reiter!
llvm-svn: 86726
|
| |
|
|
|
|
|
|
| |
Critical edges leading to a PHI node are split when the PHI source variable is
live out from the predecessor block. This help the coalescer eliminate more
PHI joins.
llvm-svn: 86725
|
| |
|
|
|
|
|
| |
Clean up some whitespace.
No functional changes.
llvm-svn: 86724
|
| |
|
|
| |
llvm-svn: 86723
|
| |
|
|
|
|
|
|
| |
debug intrinsics, and an unconditional branch when possible. This
reuses the TryToSimplifyUncondBranchFromEmptyBlock function split
out of simplifycfg.
llvm-svn: 86722
|
| |
|
|
| |
llvm-svn: 86715
|
| |
|
|
|
|
| |
correctly
llvm-svn: 86712
|
| |
|
|
|
|
|
|
|
|
| |
[r0, #2 * 4]
Now
[r0, #8]
This makes Thumb2 assembly more uniform and frankly the scale doesn't add much.
llvm-svn: 86707
|
| |
|
|
| |
llvm-svn: 86706
|
| |
|
|
| |
llvm-svn: 86705
|
| |
|
|
|
|
|
|
|
|
| |
- Force NDEBUG on in any Release build. This drops the compile time to ~100s
from ~600s, in Release mode.
- This may just be a temporary workaround, I don't know the true nature of the
gcc-4.2 compile time performance problem.
llvm-svn: 86695
|
| |
|
|
| |
llvm-svn: 86694
|
| |
|
|
| |
llvm-svn: 86689
|
| |
|
|
| |
llvm-svn: 86683
|
| |
|
|
| |
llvm-svn: 86681
|
| |
|
|
|
|
| |
just throw them away.
llvm-svn: 86678
|
| |
|
|
|
|
| |
size associated with a malloc; also extend PerformHeapAllocSRoA() to check if the optimized malloc's arg had its highest bit set, so that it is safe for ComputeMultiple() to look through sext instructions while determining the optimized malloc's array size
llvm-svn: 86676
|
| |
|
|
|
|
| |
Value V is a multiple of unsigned Base
llvm-svn: 86675
|
| |
|
|
|
|
|
| |
of a computation. This fixes some infinite loops when dealing with TD that
has no native types.
llvm-svn: 86670
|
| |
|
|
| |
llvm-svn: 86668
|
| |
|
|
|
|
|
| |
memory just like a store" with bug fixed (partial-overwrite.ll is the
regression test).
llvm-svn: 86667
|
| |
|
|
| |
llvm-svn: 86666
|
| |
|
|
| |
llvm-svn: 86656
|
| |
|
|
| |
llvm-svn: 86651
|
| |
|
|
| |
llvm-svn: 86648
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
just one level deep. On the testcase we go from getting this:
F1: ; preds = %T2
%F = and i1 true, %cond ; <i1> [#uses=1]
br i1 %F, label %X, label %Y
to a fully threaded:
F1: ; preds = %T2
br label %Y
This changes gets us to the point where we're forming (too many) switch
instructions on doug's strswitch testcase.
llvm-svn: 86646
|
| |
|
|
| |
llvm-svn: 86645
|
| |
|
|
| |
llvm-svn: 86642
|
| |
|
|
| |
llvm-svn: 86641
|
| |
|
|
| |
llvm-svn: 86639
|
| |
|
|
|
|
|
|
| |
except that the result may not be a constant. Switch jump threading to
use it so that it gets things like (X & 0) -> 0, which occur when phi preds
are deleted and the remaining phi pred was a zero.
llvm-svn: 86637
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch forbids implicit conversion of DenseMap::const_iterator to
DenseMap::iterator which was possible because DenseMapIterator inherited
(publicly) from DenseMapConstIterator. Conversion the other way around is now
allowed as one may expect.
The template DenseMapConstIterator is removed and the template parameter
IsConst which specifies whether the iterator is constant is added to
DenseMapIterator.
Actually IsConst parameter is not necessary since the constness can be
determined from KeyT but this is not relevant to the fix and can be addressed
later.
Patch by Victor Zverovich!
llvm-svn: 86636
|
| |
|
|
| |
llvm-svn: 86635
|
| |
|
|
| |
llvm-svn: 86634
|
| |
|
|
|
|
|
|
| |
lame API.
Also, Stringrefify some more MemoryBuffer functions, and add two performance FIXMEs.
llvm-svn: 86630
|
| |
|
|
|
|
| |
be renamed to break anti-dependencies.
llvm-svn: 86628
|
| |
|
|
|
|
| |
simplification, this handles the foldable fcmp x,x cases among many others.
llvm-svn: 86627
|
| |
|
|
|
|
| |
and ConstantFoldCompareInstOperands.
llvm-svn: 86626
|
| |
|
|
| |
llvm-svn: 86625
|
| |
|
|
|
|
|
| |
Simplify[IF]Cmp pieces. Add some predicates to CmpInst to
determine whether a predicate is fp or int.
llvm-svn: 86624
|
| |
|
|
|
|
| |
not necessary.
llvm-svn: 86621
|
| |
|
|
|
|
| |
individual operands instead of taking a temporary array
llvm-svn: 86619
|
| |
|
|
| |
llvm-svn: 86616
|