- May 03, 2011
-
-
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
-
Devang Patel authored
This works around a limitation in gdb which is reported by following inherit.exp test failures from gdb testsuite. gdb.cp/inherit.exp: print g_vB.vB::vb gdb.cp/inherit.exp: print g_vB.vB::vx gdb.cp/inherit.exp: print g_vC.vC::vc gdb.cp/inherit.exp: print g_vC.vC::vx gdb.cp/inherit.exp: print g_vD.vB::vb ... llvm-svn: 130702
-
Duncan Sands authored
This automagically provides a transform noticed by my super-optimizer as occurring quite often: "rem x, (select cond, x, 1)" -> 0. llvm-svn: 130694
-
Rafael Espindola authored
llvm-svn: 130693
-
Rafael Espindola authored
llvm-svn: 130692
-
Rafael Espindola authored
llvm-svn: 130691
-
Rafael Espindola authored
llvm-svn: 130690
-
Jakob Stoklund Olesen authored
When an interfering live range ends at a dead slot index between two instructions, make sure that the inserted copy instruction gets a slot index after the dead ones. This makes it possible to avoid the interference. Ideally, there shouldn't be interference ending at a deleted instruction, but physical register coalescing can sometimes do that to sub-registers. This fixes PR9823. llvm-svn: 130687
-
Nick Lewycky authored
comments claimed it did this, but the LHS value was actually an unused variable. The new system considers only the '-foo' part when comparing it for typos against flags that have values, but still look at the whole string for flags that don't. That way, we'll still correct '-inst=combine' to '-instcombine'. llvm-svn: 130685
-
Nick Lewycky authored
to scope a variable more tightly per llvm coding style. No functional change. llvm-svn: 130684
-
- May 01, 2011
-
-
Chris Lattner authored
problem reported on cfe-dev. llvm-svn: 130661
-
Rafael Espindola authored
llvm-svn: 130658
-
NAKAMURA Takumi authored
Windows/DynamicLibrary.inc: Clean up ELM_Callback. We may check the decl instead of the versions of individual libraries. autoconf: Add checking ELM_Callback decl for mingw32 and mingw-w64. cmake/config-ix.cmake: Add checking ELM_Callback decl for win32. llvm-svn: 130657
-
Chandler Carruth authored
likely a result of copy/paste. llvm-svn: 130640
-
Rafael Espindola authored
-fno-dwarf2-cfi-asm. Implement the same behavior. llvm-svn: 130637
-
Rafael Espindola authored
llvm-svn: 130635
-
Rafael Espindola authored
for all symbol differences and can drop the old EmitPCRelSymbolValue method. This also make getExprForFDESymbol on ELF equal to the one on MachO, and it can be made non-virtual. llvm-svn: 130634
-
Rafael Espindola authored
less agressive about disabling cfi on linux :-( llvm-svn: 130626
-
Jakob Stoklund Olesen authored
after folding ADD32ri to ADD32mi, so don't do that. This only happens when the greedy register allocator gets itself in trouble and spills %vreg9 here: 16L %vreg9<def> = MOVPC32r 0, %ESP<imp-use>; GR32:%vreg9 48L %vreg9<def> = ADD32ri %vreg9, <es:_GLOBAL_OFFSET_TABLE_>[TF=1], %EFLAGS<imp-def,dead>; GR32:%vreg9 That should never happen, the live range should be split instead. llvm-svn: 130625
-