| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
The condition code didn't actually matter for arm "b" instructions,
unlike "bl". It should just use the R_ARM_JUMP24 reloc.
llvm-svn: 158722
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For processors with the G5-like instruction-grouping scheme, this helps avoid
early group termination due to a write-after-write dependency within the group.
It should also help on pipelined embedded cores.
On POWER7, over the test suite, this gives an average 0.5% speedup. The largest
speedups are:
SingleSource/Benchmarks/Stanford/Quicksort - 33%
MultiSource/Applications/d/make_dparser - 21%
MultiSource/Benchmarks/FreeBench/analyzer/analyzer - 12%
MultiSource/Benchmarks/MiBench/telecomm-FFT/telecomm-fft - 12%
Largest slowdowns:
SingleSource/Benchmarks/Stanford/Bubblesort - 23%
MultiSource/Benchmarks/Prolangs-C++/city/city - 21%
MultiSource/Benchmarks/BitBench/uuencode/uuencode - 16%
MultiSource/Benchmarks/mediabench/mpeg2/mpeg2dec/mpeg2decode - 13%
llvm-svn: 158719
|
| |
|
|
| |
llvm-svn: 158702
|
| |
|
|
|
|
| |
MipsCodeEmitter.cpp.
llvm-svn: 158701
|
| |
|
|
|
|
| |
PPC will now generate STWUX and friends.
llvm-svn: 158698
|
| |
|
|
|
|
|
|
|
|
| |
TargetLoweringObjectFileELF. Use this to support it on X86. Unlike ARM,
on X86 it is not easy to find out if .init_array should be used or not, so
the decision is made via TargetOptions and defaults to off.
Add a command line option to llc that enables it.
llvm-svn: 158692
|
| |
|
|
|
|
|
|
| |
This change is to be enabled in clang.
rdar://9877866
llvm-svn: 158684
|
| |
|
|
|
|
|
| |
This patch changes the type used to hold the FU bitset from unsigned to uint64_t.
This will be needed for some upcoming PowerPC itineraries.
llvm-svn: 158679
|
| |
|
|
|
|
|
|
|
|
|
| |
The NOP, WFE, WFI, SEV and YIELD instructions are all hints w/
a different immediate value in bits [7,0]. Define a generic HINT
instruction and refactor NOP, WFI, WFI, SEV and YIELD to be
assembly aliases of that.
rdar://11600518
llvm-svn: 158674
|
| |
|
|
|
|
|
|
|
|
|
| |
when a compile time constant is known. This occurs when implicitly zero
extending function arguments from 16 bits to 32 bits. The 8 bit case doesn't
need to be handled, as the 8 bit constants are encoded directly, thereby
not needing a separate load instruction to form the constant into a register.
<rdar://problem/11481151>
llvm-svn: 158659
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This patch causes problems when both dynamic stack realignment and
dynamic allocas combine in the same function. With this patch, we no
longer build the epilog correctly, and silently restore registers from
the wrong position in the stack.
Thanks to Matt for tracking this down, and getting at least an initial
test case to Chad. I'm going to try to check a variation of that test
case in so we can easily track the fixes required.
llvm-svn: 158654
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This cleans up the method used to find trip counts in order to form CTR loops on PPC.
This refactoring allows the pass to find loops which have a constant trip count but also
happen to end with a comparison to zero. This also adds explicit FIXMEs to mark two different
classes of loops that are currently ignored.
In addition, we now search through all potential induction operations instead of just the first.
Also, we check the predicate code on the conditional branch and abort the transformation if the
code is not EQ or NE, and we then make sure that the branch to be transformed matches the
condition register defined by the comparison (multiple possible comparisons will be considered).
llvm-svn: 158607
|
| |
|
|
|
|
| |
explicitly specified
llvm-svn: 158603
|
| |
|
|
| |
llvm-svn: 158602
|
| |
|
|
|
|
| |
iaspr, espr and xpsr which also needed to have 0b10 in their mask encoding bits.
llvm-svn: 158560
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch will optimize abs(x-y)
FROM
sub, movs, rsbmi
TO
subs, rsbmi
For abs, we will use cmp instead of movs. This is necessary because we already
have an existing peephole pass which optimizes away cmp following sub.
rdar: 11633193
llvm-svn: 158551
|
| |
|
|
| |
llvm-svn: 158543
|
| |
|
|
|
|
| |
This probably mostly shows up in bugpoint-generated code.
llvm-svn: 158527
|
| |
|
|
| |
llvm-svn: 158497
|
| |
|
|
|
|
|
| |
Can someone with more knowledge of this please look at other entries
to see if others need moved.
llvm-svn: 158474
|
| |
|
|
| |
llvm-svn: 158471
|
| |
|
|
|
|
|
|
|
| |
being used by Mips16 or Micro Mips
2. clean up a few lines too long encountered
Patch by Reed Kotler.
llvm-svn: 158470
|
| |
|
|
| |
llvm-svn: 158446
|
| |
|
|
| |
llvm-svn: 158445
|
| |
|
|
| |
llvm-svn: 158443
|
| |
|
|
| |
llvm-svn: 158437
|
| |
|
|
| |
llvm-svn: 158436
|
| |
|
|
| |
llvm-svn: 158434
|
| |
|
|
| |
llvm-svn: 158433
|
| |
|
|
|
|
| |
as a scratch register when they are expanded to long branches.
llvm-svn: 158432
|
| |
|
|
|
|
| |
to load an immediate that does not fit into 16-bit.
llvm-svn: 158431
|
| |
|
|
|
|
|
|
| |
to load an immediate that does not fit into 16-bit. Also, take into
consideration the global base register slot on the stack when computing the
stack size.
llvm-svn: 158430
|
| |
|
|
|
|
|
| |
compute the size of basic blocks in a function. Also, define a function which
emits a series of instructions to load an immediate.
llvm-svn: 158429
|
| |
|
|
|
|
|
| |
Long-branches need access to the global base register to get the destination
address.
llvm-svn: 158428
|
| |
|
|
|
|
|
|
|
| |
object for the global base register.
This is the first of a series of patches which implements long branch expansion
for MIPS.
llvm-svn: 158427
|
| |
|
|
|
|
|
|
|
| |
delay slot filler pass of MIPS, per suggestion of Jakob Stoklund Olesen.
This change, along with the fix in r158154, enables machine verification
to be run after delay slot filling.
llvm-svn: 158426
|
| |
|
|
|
|
|
|
|
|
| |
pattern:
(add v0, (add v1, abs_lo(tjt))) => (add (add v0, v1), abs_lo(tjt))
"tjt" is a TargetJumpTable node.
llvm-svn: 158419
|
| |
|
|
| |
llvm-svn: 158414
|
| |
|
|
| |
llvm-svn: 158413
|
| |
|
|
| |
llvm-svn: 158410
|
| |
|
|
| |
llvm-svn: 158409
|
| |
|
|
| |
llvm-svn: 158404
|
| |
|
|
|
|
| |
one source register and zero the upper bits of the destination rather than preserving them.
llvm-svn: 158396
|
| |
|
|
| |
llvm-svn: 158393
|
| |
|
|
|
|
| |
Patch by Reed Kotler.
llvm-svn: 158382
|
| |
|
|
|
|
|
|
| |
until this directive is pushed in gas to open source fsf
Patch by Reed Kotler.
llvm-svn: 158381
|
| |
|
|
|
|
|
|
|
| |
non mips16
2. fix some comments to change OPcode->EXTEND for extended instructions
Patch by Reed Kotler.
llvm-svn: 158378
|
| |
|
|
| |
llvm-svn: 158373
|
| |
|
|
|
|
| |
Patch by Jush Lu <jush.msn@gmail.com>.
llvm-svn: 158368
|
| |
|
|
|
|
|
| |
On the POWER7, adds and logical operations can also be handled
in the load/store pipelines. We'll call these IntSimple.
llvm-svn: 158366
|