| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
These checks would often trigger on unreachable statements inserted by
bugpoint, leading it astray.
It would be nice if we could distinguish unreachable blocks from errors.
llvm-svn: 91923
|
| |
|
|
|
|
| |
ARM uses these to indicate predicates.
llvm-svn: 91922
|
| |
|
|
| |
llvm-svn: 91920
|
| |
|
|
|
|
|
|
| |
Made LEA memory operands emit only 4 MCInst operands.
Made the scale operand equal 1 for instructions that have no
SIB byte.
llvm-svn: 91919
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
load is needed when we have a small store into a large alloca (at which
point we get a load/insert/store sequence), but when you do a full-sized
store, this load ends up being dead.
This dead load is bad in really large nasty testcases where the load ends
up causing mem2reg to insert large chains of dependent phi nodes which only
ADCE can delete. Instead of doing this, just don't insert the dead load.
This fixes rdar://6864035
llvm-svn: 91917
|
| |
|
|
| |
llvm-svn: 91916
|
| |
|
|
| |
llvm-svn: 91914
|
| |
|
|
|
|
| |
"indirect" operand is not a pointer.
llvm-svn: 91913
|
| |
|
|
|
|
| |
partial update instructions unless optimizing for size.
llvm-svn: 91910
|
| |
|
|
|
|
| |
path. Fixes CMake build
llvm-svn: 91908
|
| |
|
|
|
|
| |
if it is Legal and does not result into a cyclic dep.
llvm-svn: 91904
|
| |
|
|
|
|
|
|
| |
missing check that an array reference doesn't go past the end of the array,
and remove some redundant checks for in-bound array and vector references
that are no longer needed.
llvm-svn: 91897
|
| |
|
|
|
|
|
| |
by merging all returns in a function into a single one, but simplifycfg
currently likes to duplicate the return (an unfortunate choice!)
llvm-svn: 91890
|
| |
|
|
|
|
|
|
|
|
| |
result
instead of stored. This reduces memdep memory usage, and also eliminates a bunch of
weakvh's. This speeds up gvn on gcc.c-torture/20001226-1.c from 23.9s to 8.45s (2.8x)
on a different machine than earlier.
llvm-svn: 91885
|
| |
|
|
|
|
|
|
| |
return partial registers. This affected the back-end lowering code some.
Also patch up some places I missed before in the "get" functions.
llvm-svn: 91880
|
| |
|
|
|
|
| |
with symbols in AuroraUX's global namespace.
llvm-svn: 91879
|
| |
|
|
| |
llvm-svn: 91878
|
| |
|
|
| |
llvm-svn: 91876
|
| |
|
|
| |
llvm-svn: 91875
|
| |
|
|
|
|
| |
generic copy functions.
llvm-svn: 91872
|
| |
|
|
|
|
| |
X86 codegen that were causing circular symbol dependencies.
llvm-svn: 91871
|
| |
|
|
|
|
| |
a call. This speeds up memdep ~1.5%
llvm-svn: 91869
|
| |
|
|
| |
llvm-svn: 91866
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
get things like this out of the disassembler:
0x100000ecb: callq -96
instead of:
0x100000ecb: callq 4294967200
rdar://7491123
llvm-svn: 91864
|
| |
|
|
| |
llvm-svn: 91863
|
| |
|
|
|
|
| |
SDNodes. This time in the load/store and limited-precision code.
llvm-svn: 91860
|
| |
|
|
|
|
| |
This fixes an in-place update bug where code inserted at the end of basic blocks may not be covered by existing intervals which were live across the entire block. It is also consistent with the way ranges are specified for live intervals.
llvm-svn: 91859
|
| |
|
|
|
|
|
| |
assign the ordering when called. Combine some of the ordering assignments to
keep things simple.
llvm-svn: 91857
|
| |
|
|
| |
llvm-svn: 91853
|
| |
|
|
|
|
|
|
|
|
|
| |
load to avoid even messing around with SSAUpdate at all. In this case (which
is very common, we can just use the input value directly).
This speeds up GVN time on gcc.c-torture/20001226-1.c from 36.4s to 16.3s,
which still isn't great, but substantially better and this is a simple speedup
that applies to lots of different cases.
llvm-svn: 91851
|
| |
|
|
|
|
| |
orderings to values returned by getValue().
llvm-svn: 91850
|
| |
|
|
| |
llvm-svn: 91849
|
| |
|
|
|
|
| |
no functionality change.
llvm-svn: 91848
|
| |
|
|
|
|
| |
shuffle and insert vector.
llvm-svn: 91847
|
| |
|
|
| |
llvm-svn: 91846
|
| |
|
|
|
|
| |
- Modify the "dump" method to emit the order of an SDNode.
llvm-svn: 91845
|
| |
|
|
| |
llvm-svn: 91841
|
| |
|
|
|
|
| |
a lot of the branching instructions.
llvm-svn: 91838
|
| |
|
|
| |
llvm-svn: 91836
|
| |
|
|
| |
llvm-svn: 91834
|
| |
|
|
|
|
|
|
| |
two-element arrays. After restructuring the SROA code, it was not safe to
do this without adding more checking. It is not clear that this special-case
has really been useful, and removing this simplifies the code quite a bit.
llvm-svn: 91828
|
| |
|
|
|
|
|
|
|
|
| |
by allowing backends to override routines that will default
the JIT and Static code generation to an appropriate code model
for the architecture.
Should fix PR 5773.
llvm-svn: 91824
|
| |
|
|
| |
llvm-svn: 91823
|
| |
|
|
|
|
| |
the underlying PHI node insertion issue in SSAUpdate is fixed.
llvm-svn: 91821
|
| |
|
|
|
|
|
|
|
|
| |
'GetValueInMiddleOfBlock' case, instead of inserting
duplicates.
A similar fix is almost certainly needed by the machine-level
SSAUpdate implementation.
llvm-svn: 91820
|
| |
|
|
|
|
|
|
|
| |
implement some optimizations for MIN(MIN()) and MAX(MAX()) and
MIN(MAX()) etc. This substantially improves the code in PR5822 but
doesn't kick in much elsewhere. 2 max's were optimized in
pairlocalalign and one in smg2000.
llvm-svn: 91814
|
| |
|
|
|
|
|
|
|
|
|
| |
Use the presence of NSW/NUW to fold "icmp (x+cst), x" to a constant in
cases where it would otherwise be undefined behavior.
Surprisingly (to me at least), this triggers hundreds of the times in
a few benchmarks: lencode, ldecode, and 466.h264ref seem to *really*
like this.
llvm-svn: 91812
|
| |
|
|
|
|
|
| |
a bunch in lencode, ldecod, spass, 176.gcc, 252.eon, among others. It is
also the first part of PR5822
llvm-svn: 91811
|
| |
|
|
|
|
|
|
| |
cache a pointer as being unavailable due to phi trans in the
wrong place. This would cause later queries to fail even when
they didn't involve phi trans.
llvm-svn: 91787
|
| |
|
|
| |
llvm-svn: 91780
|