| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 116155
|
|
|
|
| |
llvm-svn: 116151
|
|
|
|
| |
llvm-svn: 116150
|
|
|
|
| |
llvm-svn: 116149
|
|
|
|
| |
llvm-svn: 116148
|
|
|
|
| |
llvm-svn: 116143
|
|
|
|
|
|
| |
something else.
llvm-svn: 116142
|
|
|
|
| |
llvm-svn: 116140
|
|
|
|
| |
llvm-svn: 116136
|
|
|
|
|
|
| |
pipeline 1.
llvm-svn: 116135
|
|
|
|
|
|
|
|
| |
1. Cortex-A8 load / store multiplies can only issue on ALU0.
2. Eliminate A8_Issue, A8_LSPipe will correctly limit the load / store issues.
3. Correctly model all vld1 and vld2 variants.
llvm-svn: 116134
|
|
|
|
|
|
| |
before decrementing. <rdar://problem/8529919>
llvm-svn: 116126
|
|
|
|
|
|
|
|
|
| |
the add/or xform. The JIT isn't mcized yet, boo.
This fixes Olden/voronoi, bh and a ton of other stuff that
uses the jit.
llvm-svn: 116125
|
|
|
|
| |
llvm-svn: 116124
|
|
|
|
| |
llvm-svn: 116123
|
|
|
|
|
|
|
|
|
| |
functions: computeRemainder and rewrite.
When the remainder breaks up into multiple components, remember to rewrite those
uses as well.
llvm-svn: 116121
|
|
|
|
| |
llvm-svn: 116119
|
|
|
|
|
|
|
|
| |
are still way too long, but it's a start.
No functional change intended.
llvm-svn: 116116
|
|
|
|
|
|
|
| |
Such a check does not make any sense in presense of inlining and other compiler-dependent stuff.
This should fix bunch of warnings on mingw32.
llvm-svn: 116113
|
|
|
|
|
|
|
|
|
|
| |
concept level stuff at this point, but it is generally working for those
instructions that know how to map the operands.
This patch fills in the register operands for add/sub/or/etc instructions
and adds the conditional execution predicate encoding.
llvm-svn: 116112
|
|
|
|
| |
llvm-svn: 116105
|
|
|
|
|
|
| |
are easier to diff with those produced by llvm-mc.
llvm-svn: 116095
|
|
|
|
|
|
|
|
|
|
| |
formulae which become illegal as a result of the offset updating don't
escape.
This is for rdar://8529692. No testcase yet, because the given cases
hit use-list ordering differences.
llvm-svn: 116093
|
|
|
|
| |
llvm-svn: 116083
|
|
|
|
| |
llvm-svn: 116081
|
|
|
|
|
|
|
|
|
|
| |
implicit. e.g.
%D6<def>, %D7<def> = VLD1q16 %R2<kill>, 0, ..., %Q3<imp-def>
%Q1<def> = VMULv8i16 %Q1<kill>, %Q3<kill>, ...
The real definition indices are 0,1.
llvm-svn: 116080
|
|
|
|
| |
llvm-svn: 116072
|
|
|
|
|
|
| |
''const'ify getMachineOpValue() and associated helpers.'
llvm-svn: 116067
|
|
|
|
| |
llvm-svn: 116064
|
|
|
|
| |
llvm-svn: 116063
|
|
|
|
|
|
| |
this construct.
llvm-svn: 116061
|
|
|
|
| |
llvm-svn: 116059
|
|
|
|
|
|
| |
performance metrics. Partial Specialization will apply the former to function specializations, and the latter to all callsites that can use a specialization, in order to decide whether to create a specialization
llvm-svn: 116057
|
|
|
|
|
|
| |
case. Add test case. This code eventually needs to be tighter, since it's always allocating it, even in leaf routines.
llvm-svn: 116056
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
callee-saved registers at the end of the lists. Also prefer to avoid using
the low registers that are in register subclasses required by certain
instructions, so that those registers will more likely be available when needed.
This change makes a huge improvement in spilling in some cases. Thanks to
Jakob for helping me realize the problem.
Most of this patch is fixing the testsuite. There are quite a few places
where we're checking for specific registers. I changed those to wildcards
in places where that doesn't weaken the tests. The spill-q.ll and
thumb2-spill-q.ll tests stopped spilling with this change, so I added a bunch
of live values to force spills on those tests.
llvm-svn: 116055
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the i8 versions of instructions in some cases. In test6, we started
generating:
cmpq $0, -8(%rsp) ## encoding: [0x48,0x81,0x7c,0x24,0xf8,0x00,0x00,0x00,0x00]
## <MCInst #478 CMP64mi32
## <MCOperand Reg:114>
## <MCOperand Imm:1>
## <MCOperand Reg:0>
## <MCOperand Imm:-8>
## <MCOperand Reg:0>
## <MCOperand Imm:0>>
instead of:
cmpq $0, -8(%rsp) ## encoding: [0x48,0x83,0x7c,0x24,0xf8,0x00]
## <MCInst #479 CMP64mi8
## <MCOperand Reg:114>
## <MCOperand Imm:1>
## <MCOperand Reg:0>
## <MCOperand Imm:-8>
## <MCOperand Reg:0>
## <MCOperand Imm:0>>
Fix this and add some comments.
llvm-svn: 116053
|
|
|
|
|
|
|
|
|
| |
reapply: reimplement the second half of the or/add optimization. We should now
with no changes. Turns out that one missing "Defs = [EFLAGS]" can upset things
a bit.
llvm-svn: 116040
|
|
|
|
|
|
|
|
| |
"Reimplement (part of) the or -> add optimization. Matching 'or' into 'add'"
With a critical fix: the add pseudos clobber EFLAGS.
llvm-svn: 116039
|
|
|
|
| |
llvm-svn: 116034
|
|
|
|
|
|
| |
'add'", which seems to have broken just about everything.
llvm-svn: 116033
|
|
|
|
|
|
| |
on r116007, which I am about to revert.
llvm-svn: 116032
|
|
|
|
|
|
| |
which depends on r116007, which I am about to revert.
llvm-svn: 116031
|
|
|
|
|
|
|
|
| |
as thumb1.
Fixes lencod.
llvm-svn: 116027
|
|
|
|
|
|
|
|
|
|
| |
only end up emitting LEA instead of OR. If we aren't able to promote
something into an LEA, we should never be emitting it as an ADD.
Add some testcases that we emit "or" in cases where we used to produce
an "add".
llvm-svn: 116026
|
|
|
|
| |
llvm-svn: 116022
|
|
|
|
| |
llvm-svn: 116018
|
|
|
|
|
|
| |
casing FsMOVAPDrr/FsMOVAPSrr.
llvm-svn: 116016
|
|
|
|
| |
llvm-svn: 116014
|
|
|
|
| |
llvm-svn: 116013
|
|
|
|
|
|
|
| |
one user. This code will be restructured soon and FormulaSorter
is getting in the way.
llvm-svn: 116012
|