| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 95916
|
| |
|
|
| |
llvm-svn: 95915
|
| |
|
|
| |
llvm-svn: 95904
|
| |
|
|
| |
llvm-svn: 95903
|
| |
|
|
|
|
|
| |
that generates the 1-byte and 4-byte immediate versions
from one definition.
llvm-svn: 95902
|
| |
|
|
|
|
|
| |
use a multipattern that generates both the 1-byte and 4-byte
versions from the same defm
llvm-svn: 95901
|
| |
|
|
|
|
|
|
| |
work anyway (Interpreter::getPointerToFunction doesn't return a
callable pointer), and improve the error message when an
ExecutionEngine can't be created.
llvm-svn: 95896
|
| |
|
|
|
|
|
|
| |
VFP).
Sorry!
llvm-svn: 95892
|
| |
|
|
|
|
| |
same dead instruction.
llvm-svn: 95890
|
| |
|
|
| |
llvm-svn: 95889
|
| |
|
|
|
|
| |
A8.6.297
llvm-svn: 95885
|
| |
|
|
| |
llvm-svn: 95884
|
| |
|
|
|
|
|
| |
Use SmallVector instead of std::vector for better speed when indirectbr has
few successors.
llvm-svn: 95879
|
| |
|
|
|
|
|
|
| |
symbols.
Thanks to Duncan Sands for the testcase!
llvm-svn: 95877
|
| |
|
|
|
|
| |
as the "Permanently UNDEFINED" instruction.
llvm-svn: 95873
|
| |
|
|
| |
llvm-svn: 95871
|
| |
|
|
|
|
| |
fixes the remaining x86-64 jit failures afaik.
llvm-svn: 95867
|
| |
|
|
|
|
|
|
|
| |
r12b, etc) also encodes to a R/M value of 4, which is just
as illegal as ESP/RSP for the non-sib version an address.
This fixes x86-64 jit miscompilations of a bunch of programs.
llvm-svn: 95866
|
| |
|
|
| |
llvm-svn: 95862
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Stub out some dummy fixups to make things work.
We can now emit fixups like this:
subl $20, %esp ## encoding: [0x83,0xec,A]
## fixup A - offset: 2, value: 20, kind: fixup_1byte_imm
Emitting $20 as a single-byte fixup to be later resolved
by the assembler is ridiculous of course (vs just emitting
the byte) but this is a failure of the matcher, which
should be producing an imm of 20, not an MCExpr of 20.
llvm-svn: 95860
|
| |
|
|
|
|
| |
and rename it to EmitImmediate.
llvm-svn: 95859
|
| |
|
|
| |
llvm-svn: 95858
|
| |
|
|
| |
llvm-svn: 95857
|
| |
|
|
| |
llvm-svn: 95856
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
what it does. Enhance it to return false to optimizing vector
sign extensions from vector comparisions, which is the idiom used
to get a splatted vector for a vector comparison.
Doing this breaks vector-casts.ll, add some compensating
transformations to handle the important case they cover without
depending on this canonicalization.
This fixes rdar://7434900 a serious pessimization of vector compares.
llvm-svn: 95855
|
| |
|
|
| |
llvm-svn: 95854
|
| |
|
|
|
|
|
|
|
| |
block. Other blocks may have pointer cycles that will crash
basicaa and other alias analyses. In any case, there is no
point wasting cycles optimizing dead blocks. This fixes
rdar://7635088
llvm-svn: 95852
|
| |
|
|
| |
llvm-svn: 95851
|
| |
|
|
|
|
| |
instead of considering x|undef -> x, which may not be true.
llvm-svn: 95850
|
| |
|
|
|
|
|
| |
Update testcase accordingly now that we can optimize another
section.
llvm-svn: 95846
|
| |
|
|
| |
llvm-svn: 95844
|
| |
|
|
| |
llvm-svn: 95840
|
| |
|
|
|
|
| |
almost always comments afterwards that need printing.
llvm-svn: 95839
|
| |
|
|
|
|
|
|
|
|
| |
the global TheJIT and TheJITResolver variables. Lazy compilation is supported
by a global map from a stub address to the JITResolver that knows how to
compile it.
Patch by Olivier Meurant!
llvm-svn: 95837
|
| |
|
|
|
|
|
|
| |
Calling RemoveOperand is very expensive on huge PHI instructions. This makes
early tail duplication run twice as fast on the Firefox JavaScript
interpreter.
llvm-svn: 95832
|
| |
|
|
|
|
|
|
|
| |
machine CFG.
This makes early tail duplication run 60 times faster when compiling the Firefox
JavaScript interpreter, see PR6186.
llvm-svn: 95831
|
| |
|
|
| |
llvm-svn: 95828
|
| |
|
|
| |
llvm-svn: 95827
|
| |
|
|
|
|
| |
with some of the recent changes that have gone into llvm-mc.
llvm-svn: 95826
|
| |
|
|
|
|
| |
multiple global variables at a time.
llvm-svn: 95825
|
| |
|
|
|
|
|
|
|
|
|
| |
on custom
lowering and requires that certain types exist in ValueTypes.h. Modified widening to
check if an op can trap and if so, the widening algorithm will apply only the op on
the defined elements. It is safer to do this in widening because the optimizer can't
guarantee removing unused ops in some cases.
llvm-svn: 95823
|
| |
|
|
| |
llvm-svn: 95819
|
| |
|
|
| |
llvm-svn: 95818
|
| |
|
|
|
|
|
|
|
| |
legalization even when the IR-level optimizer has removed dead phis, such
as when the high half of an i64 value is unused on a 32-bit target.
I had to adjust a few test cases that had dead phis.
This is a partial fix for Radar 7627077.
llvm-svn: 95816
|
| |
|
|
| |
llvm-svn: 95814
|
| |
|
|
|
|
| |
the pointer values could be invalid.
llvm-svn: 95813
|
| |
|
|
|
|
| |
changed its behavior. Oops.
llvm-svn: 95811
|
| |
|
|
| |
llvm-svn: 95810
|
| |
|
|
|
|
| |
code with lots of bitfields.
llvm-svn: 95809
|
| |
|
|
| |
llvm-svn: 95808
|