- May 04, 2011
-
-
Devang Patel authored
llvm-svn: 130876
-
Devang Patel authored
llvm-svn: 130869
-
Eli Friedman authored
llvm-svn: 130867
-
Eli Friedman authored
Teach MachineCSE how to do simple cross-block CSE involving physregs. This allows, for example, eliminating duplicate cmpl's on x86. Part of rdar://problem/8259436 . llvm-svn: 130862
-
Jakob Stoklund Olesen authored
llvm-svn: 130857
-
Devang Patel authored
llvm-svn: 130854
-
Rafael Espindola authored
llvm-svn: 130850
-
Akira Hatanaka authored
Prevent instructions using $gp from being placed between a jalr and the instruction that restores the clobbered $gp. llvm-svn: 130847
-
Rafael Espindola authored
it is both inefficient and unexpected by dwarfdump. Change to a DW_FORM_data4. While in here, change the predicate name to reflect that the position is not really absolute (it is an offset), just that the linker needs a relocation. llvm-svn: 130846
-
Jakob Stoklund Olesen authored
Physreg joining is still on by default, but I will turn it off shortly. llvm-svn: 130844
-
Devang Patel authored
Tighten up check for empty (i.e. no meaningful debug info) module. This fixes dwarf-die2.c test case from gcc test suite. llvm-svn: 130842
-
Duncan Sands authored
but according to my super-optimizer there are only two missed simplifications of -instsimplify kind when compiling bzip2, and this is one of them. It amuses me to have bzip2 be perfectly optimized as far as instsimplify goes! llvm-svn: 130840
-
Nick Lewycky authored
frontend, if applicable. llvm-svn: 130835
-
Andrew Trick authored
This adds functionality to remove size/zero extension during indvars without generating a canonical IV and rewriting all IV users. It's disabled by default so should have no effect on codegen. Work in progress. llvm-svn: 130829
-
Jakob Stoklund Olesen authored
coalescing. llvm-svn: 130814
-
Jakob Stoklund Olesen authored
LiveVariables doesn't understand that clobbering D0 and D1 completely overwrites Q0, so if Q0 is live-in to a function, its live range will extend beyond a function call that only clobbers D0 and D1. This shows up in the ARM/2009-11-01-NeonMoves test case. LiveVariables should probably implement the much stricter rules for physreg liveness that RAFast imposes - a physreg is killed by the first use of any alias. llvm-svn: 130801
-
Andrew Trick authored
Only create a canonical IV for backedge taken count if it will actually be used by LinearFunctionTestReplace. And some related cleanup, preparing to reduce dependence on canonical IVs. No significant effect on x86 or arm in the test-suite. llvm-svn: 130799
-
- May 03, 2011
-
-
Devang Patel authored
Even if the subprogram is going to use AT_specification, emit DW_AT_MIPS_linkage_name. This helps gdb and fixes var-path-expr.exp regression reported by gdb testsuite. llvm-svn: 130794
-
Daniel Dunbar authored
(and should thus never be done). - Should fix a crash on win32. llvm-svn: 130793
-
Bill Wendling authored
<rdar://problem/8460511> llvm-svn: 130791
-
Jakob Stoklund Olesen authored
Register coalescing can sometimes create live ranges that end in the middle of a basic block without any killing instruction. When SplitKit detects this, it will repair the live range by shrinking it to its uses. Live range splitting also needs to know about this. When the range shrinks so much that it becomes allocatable, live range splitting fails because it can't find a good split point. It is paranoid about making progress, so an allocatable range is considered an error. The coalescer should really not be creating these bad live ranges. They appear when coalescing dead copies. llvm-svn: 130787
-
Duncan Sands authored
max(a,b) >= a -> true. According to my super-optimizer, these are by far the most common simplifications (of the -instsimplify kind) that occur in the testsuite and aren't caught by -std-compile-opts. llvm-svn: 130780
-
Akira Hatanaka authored
llvm-svn: 130774
-
Bob Wilson authored
llvm-svn: 130766
-
Bruno Cardoso Lopes authored
it's possible. llvm-svn: 130764
-
Bruno Cardoso Lopes authored
llvm-svn: 130763
-
Devang Patel authored
If the front end has emitted llvm.dbg.cu and other debug info anchors (clang does it now) then use them directly. This saves one scan of entire module, to collect debug info, which in turns saves few machine cycles at compile time. llvm-svn: 130759
-
Devang Patel authored
llvm-svn: 130756
-
Benjamin Kramer authored
llvm-svn: 130755
-
Michael J. Spencer authored
llvm-svn: 130749
-
Eric Christopher authored
string template. Fixes rdar://8493866 llvm-svn: 130747
-
Dan Gohman authored
model constants which can be added to base registers via add-immediate instructions which don't require an additional register to materialize the immediate. llvm-svn: 130743
-
Owen Anderson authored
Other parts of the SelectionDAG framework assume that targets use their pointer type for vector indices. Make the vector unrolling code respect that. llvm-svn: 130733
-
- May 02, 2011
-
-
Devang Patel authored
Scanning entire basic block may be too expensive in terms of compile time. Instead, just use whatever location info first non-phi instruction has. llvm-svn: 130729
-
Jakob Stoklund Olesen authored
llvm-svn: 130718
-
Eric Christopher authored
llvm-svn: 130716
-
Jakob Stoklund Olesen authored
llvm-svn: 130715
-
Jakob Stoklund Olesen authored
Def operands may also have an <undef> flag, but that just means that a sub-register redef doesn't actually read the super-register. For physical registers, it has no meaning. llvm-svn: 130714
-
Duncan Sands authored
a vector compare, generate a vector result rather than i1 (and crashing). llvm-svn: 130706
-
Duncan Sands authored
llvm-svn: 130705
-