| Commit message (Collapse) | Author | Age | Files | Lines | 
| ... |  | 
| | 
| 
| 
| 
| 
|  | 
xs
llvm-svn: 102316
 | 
| | 
| 
| 
| 
| 
| 
|  | 
preferred alignment unless they were common or some other special
case.
llvm-svn: 102300
 | 
| | 
| 
| 
| 
| 
|  | 
of extload result truncated.
llvm-svn: 102236
 | 
| | 
| 
| 
| 
| 
|  | 
testcase yet, as the testcase now fails downstream.
llvm-svn: 102228
 | 
| | 
| 
| 
|  | 
llvm-svn: 102202
 | 
| | 
| 
| 
| 
| 
|  | 
itself too.
llvm-svn: 102176
 | 
| | 
| 
| 
| 
| 
| 
|  | 
because 102004 causes codegen to emit invalid assembly on at least
x86_64-unknown-gnu-linux.
llvm-svn: 102155
 | 
| | 
| 
| 
|  | 
llvm-svn: 102129
 | 
| | 
| 
| 
| 
| 
|  | 
into SelectionDAGBuilder itself.
llvm-svn: 102128
 | 
| | 
| 
| 
|  | 
llvm-svn: 102127
 | 
| | 
| 
| 
| 
| 
|  | 
and into SelectionDAGBuilder and FastISel.
llvm-svn: 102123
 | 
| | 
| 
| 
| 
| 
|  | 
- Some code refactoring.
llvm-svn: 102111
 | 
| | 
| 
| 
|  | 
llvm-svn: 102110
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
FunctionLoweringInfo, as it isn't SelectionDAG-specific. This isn't
completely natural, as PHI node state is not per-function but rather
per-basic-block, however there's currently no other convenient
per-basic-block state to group it with.
llvm-svn: 102109
 | 
| | 
| 
| 
|  | 
llvm-svn: 102106
 | 
| | 
| 
| 
|  | 
llvm-svn: 102104
 | 
| | 
| 
| 
|  | 
llvm-svn: 102102
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This actually makes everything slower, but the plan is to have isel add <kill>
flags the way it is already adding <dead> flags. Then LiveVariables can be
removed again.
When ignoring the time spent in LiveVariables, -regalloc=fast is now twice as
fast as -regalloc=local.
llvm-svn: 102034
 | 
| | 
| 
| 
|  | 
llvm-svn: 102027
 | 
| | 
| 
| 
| 
| 
|  | 
option does not impact debug info generation and preservation through earlier compile starges.
llvm-svn: 102012
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
So far this is just a clone of -regalloc=local that has been lobotomized to run
25% faster. It drops the least-recently-used calculations, and is just plain
stupid when it runs out of registers.
The plan is to make this go even faster for -O0 by taking advantage of the short
live intervals in unoptimized code. It should not be necessary to calculate
liveness when most virtual registers are killed 2-3 instructions after they are
born.
llvm-svn: 102006
 | 
| | 
| 
| 
| 
| 
|  | 
Emit such ranges using DW_AT_ranges.
llvm-svn: 102004
 | 
| | 
| 
| 
| 
| 
| 
|  | 
optimization for non-leaf functions. This will be hooked up to gcc's
-momit-leaf-frame-pointer option. rdar://7886181
llvm-svn: 101984
 | 
| | 
| 
| 
|  | 
llvm-svn: 101977
 | 
| | 
| 
| 
|  | 
llvm-svn: 101976
 | 
| | 
| 
| 
| 
| 
|  | 
SelectionDAG directory and into a new Analysis.cpp file.
llvm-svn: 101975
 | 
| | 
| 
| 
| 
| 
| 
|  | 
extract_subreg / insert_subreg, etc.
- Add support for more aggressive insert_subreg coalescing.
llvm-svn: 101971
 | 
| | 
| 
| 
|  | 
llvm-svn: 101964
 | 
| | 
| 
| 
| 
| 
| 
|  | 
CodeGen's ComputeMaskedBits was being over-conservative when computing
bits for an ADD.
llvm-svn: 101963
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
user-defined operations that use MMX register types, but
the compiler shouldn't generate them on its own.  This adds
a Synthesizable abstraction to represent this, and changes
the vector widening computation so it won't produce MMX types.
(The motivation is to remove noise from the ABI compatibility
part of the gcc test suite, which has some breakage right now.)
llvm-svn: 101951
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
register is not killed in the loop.
This fixes 188.ammp on ARM where the post-ra scheduler would grab a register
that looked available but wasn't.
A testcase would be huge and fragile, sorry.
llvm-svn: 101930
 | 
| | 
| 
| 
|  | 
llvm-svn: 101914
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
into SelectionDAGBuilder. This avoids a separate pass over the
instructions, and has the side effect of providing debug location
information to the copy.
llvm-svn: 101906
 | 
| | 
| 
| 
| 
| 
|  | 
they end up doing nothing.
llvm-svn: 101904
 | 
| | 
| 
| 
|  | 
llvm-svn: 101902
 | 
| | 
| 
| 
|  | 
llvm-svn: 101901
 | 
| | 
| 
| 
|  | 
llvm-svn: 101900
 | 
| | 
| 
| 
|  | 
llvm-svn: 101899
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
in other types.  fix this by only bumping zero-byte globals
up to a single byte if the *entire global* is zero size,
fixing PR6340.
This also fixes empty arrays etc to be handled correctly,
and only does this on subsection-via-symbols targets (aka
darwin) which is the only place where this matters.
llvm-svn: 101879
 | 
| | 
| 
| 
|  | 
llvm-svn: 101860
 | 
| | 
| 
| 
| 
| 
|  | 
it as it's not dead.
llvm-svn: 101855
 | 
| | 
| 
| 
| 
| 
|  | 
in the case where a basic block is split.
llvm-svn: 101850
 | 
| | 
| 
| 
| 
| 
|  | 
SelectionDAGBuilder, where it doesn't have to be as complicated.
llvm-svn: 101848
 | 
| | 
| 
| 
| 
| 
|  | 
responsible for figuring out what that's supposed to be on its own.
llvm-svn: 101844
 | 
| | 
| 
| 
| 
| 
| 
|  | 
where multiple blocks are emitted; functions which do this need to return
the new BB so that their callers can stay current.
llvm-svn: 101843
 | 
| | 
| 
| 
|  | 
llvm-svn: 101832
 | 
| | 
| 
| 
| 
| 
|  | 
and End arguments by-value rather than by-reference.
llvm-svn: 101830
 | 
| | 
| 
| 
| 
| 
|  | 
an argument to things that need it.
llvm-svn: 101825
 | 
| | 
| 
| 
| 
| 
| 
|  | 
need it, just pass around the parent block of the current instruction
explicitly.
llvm-svn: 101822
 | 
| | 
| 
| 
|  | 
llvm-svn: 101808
 |