llvm-6502/test/CodeGen/PowerPC
Hal Finkel 94dc061e85 [PowerPC] Loosen ELFv1 PPC64 func descriptor loads for indirect calls
Function pointers under PPC64 ELFv1 (which is used on PPC64/Linux on the
POWER7, A2 and earlier cores) are really pointers to a function descriptor, a
structure with three pointers: the actual pointer to the code to which to jump,
the pointer to the TOC needed by the callee, and an environment pointer. We
used to chain these loads, and make them opaque to the rest of the optimizer,
so that they'd always occur directly before the call. This is not necessary,
and in fact, highly suboptimal on embedded cores. Once the function pointer is
known, the loads can be performed ahead of time; in fact, they can be hoisted
out of loops.

Now these function descriptors are almost always generated by the linker, and
thus the contents of the descriptors are invariant. As a result, by default,
we'll mark the associated loads as invariant (allowing them to be hoisted out
of loops). I've added a target feature to turn this off, however, just in case
someone needs that option (constructing an on-stack descriptor, casting it to a
function pointer, and then calling it cannot be well-defined C/C++ code, but I
can imagine some JIT-compilation system doing so).

Consider this simple test:
  $ cat call.c

  typedef void (*fp)();
  void bar(fp x) {
    for (int i = 0; i < 1600000000; ++i)
      x();
  }

  $ cat main.c

  typedef void (*fp)();
  void bar(fp x);
  void foo() {}
  int main() {
    bar(foo);
  }

On the PPC A2 (the BG/Q supercomputer), marking the function-descriptor loads
as invariant brings the execution time down to ~8 seconds from ~32 seconds with
the loads in the loop.

The difference on the POWER7 is smaller. Compiling with:

  gcc -std=c99 -O3 -mcpu=native call.c main.c : ~6 seconds [this is 4.8.2]

  clang -O3 -mcpu=native call.c main.c : ~5.3 seconds

  clang -O3 -mcpu=native call.c main.c -mno-invariant-function-descriptors : ~4 seconds
  (looks like we'd benefit from additional loop unrolling here, as a first
   guess, because this is faster with the extra loads)

The -mno-invariant-function-descriptors will be added to Clang shortly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226207 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-15 21:17:34 +00:00
..
2004-11-29-ShrCrash.ll
2004-11-30-shift-crash.ll
2004-11-30-shr-var-crash.ll
2004-12-12-ZeroSizeCommon.ll
2005-01-14-SetSelectCrash.ll
2005-01-14-UndefLong.ll
2005-08-12-rlwimi-crash.ll
2005-09-02-LegalizeDuplicatesCalls.ll
2005-10-08-ArithmeticRotate.ll
2005-11-30-vastart-crash.ll
2006-01-11-darwin-fp-argument.ll
2006-01-20-ShiftPartsCrash.ll
2006-04-01-FloatDoubleExtend.ll
2006-04-05-splat-ish.ll
2006-04-19-vmaddfp-crash.ll
2006-05-12-rlwimi-crash.ll
2006-07-07-ComputeMaskedBits.ll
2006-07-19-stwbrx-crash.ll
2006-08-11-RetVector.ll
2006-08-15-SelectionCrash.ll
2006-09-28-shift_64.ll
2006-10-13-Miscompile.ll
2006-10-17-brcc-miscompile.ll
2006-10-17-ppc64-alloca.ll
2006-11-10-DAGCombineMiscompile.ll
2006-11-29-AltivecFPSplat.ll
2006-12-07-LargeAlloca.ll
2006-12-07-SelectCrash.ll
2007-01-04-ArgExtension.ll
2007-01-15-AsmDialect.ll
2007-01-29-lbrx-asm.ll
2007-01-31-InlineAsmAddrMode.ll
2007-02-16-AlignPacked.ll
2007-02-16-InlineAsmNConstraint.ll
2007-02-23-lr-saved-twice.ll
2007-03-24-cntlzd.ll [PowerPC] Fix test to pass on Darwin hosts 2015-01-05 23:17:43 +00:00
2007-03-30-SpillerCrash.ll
2007-04-24-InlineAsm-I-Modifier.ll
2007-04-30-InlineAsmEarlyClobber.ll
2007-05-03-InlineAsm-S-Constraint.ll
2007-05-14-InlineAsmSelectCrash.ll
2007-05-22-tailmerge-3.ll
2007-05-30-dagcombine-miscomp.ll
2007-06-28-BCCISelBug.ll
2007-08-04-CoalescerAssert.ll
2007-09-04-AltivecDST.ll
2007-09-07-LoadStoreIdxForms.ll
2007-09-08-unaligned.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
2007-09-11-RegCoalescerAssert.ll
2007-09-12-LiveIntervalsAssert.ll
2007-10-16-InlineAsmFrameOffset.ll
2007-10-18-PtrArithmetic.ll
2007-10-21-LocalRegAllocAssert2.ll
2007-10-21-LocalRegAllocAssert.ll
2007-11-04-CoalescerCrash.ll
2007-11-16-landingpad-split.ll
2007-11-19-VectorSplitting.ll
2008-02-05-LiveIntervalsAssert.ll
2008-02-09-LocalRegAllocAssert.ll
2008-03-05-RegScavengerAssert.ll
2008-03-17-RegScavengerCrash.ll
2008-03-18-RegScavengerAssert.ll
2008-03-24-AddressRegImm.ll
2008-03-24-CoalescerBug.ll
2008-03-26-CoalescerBug.ll
2008-04-10-LiveIntervalCrash.ll
2008-04-16-CoalescerBug.ll
2008-04-23-CoalescerCrash.ll
2008-05-01-ppc_fp128.ll
2008-06-19-LegalizerCrash.ll
2008-06-21-F128LoadStore.ll
2008-06-23-LiveVariablesCrash.ll
2008-07-10-SplatMiscompile.ll [PATCH] Correct type used for VADD_SPLAT optimization on PowerPC 2014-05-27 15:57:51 +00:00
2008-07-15-Bswap.ll
2008-07-15-Fabs.ll
2008-07-15-SignExtendInreg.ll
2008-07-17-Fneg.ll
2008-07-24-PPC64-CCBug.ll
2008-09-12-CoalescerBug.ll
2008-10-17-AsmMatchingOperands.ll
2008-10-28-f128-i32.ll
2008-10-28-UnprocessedNode.ll
2008-10-31-PPCF128Libcalls.ll
2008-12-02-LegalizeTypeAssert.ll
2009-01-16-DeclareISelBug.ll
2009-03-17-LSRBug.ll
2009-05-28-LegalizeBRCC.ll
2009-07-16-InlineAsm-M-Operand.ll
2009-08-17-inline-asm-addr-mode-breakage.ll
2009-09-18-carrybit.ll
2009-11-15-ProcImpDefsBug.ll
2009-11-25-ImpDefBug.ll
2010-02-04-EmptyGlobal.ll
2010-02-12-saveCR.ll
2010-03-09-indirect-call.ll
2010-04-01-MachineCSEBug.ll
2010-05-03-retaddr1.ll
2010-10-11-Fast-Varargs.ll
2010-12-18-PPCStackRefs.ll
2011-12-05-NoSpillDupCR.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
2011-12-06-SpillAndRestoreCR.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
2011-12-08-DemandedBitsMiscompile.ll
2012-09-16-TOC-entry-check.ll
2012-10-11-dynalloc.ll
2012-10-12-bitcast.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
2012-11-16-mischedcall.ll
2013-05-15-preinc-fold.ll
2013-07-01-PHIElimBug.ll
a2-fp-basic.ll
a2q-stackalign.ll
a2q.ll
aa-tbaa.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
add-fi.ll [PowerPC] Better lowering for add/or of a FrameIndex 2014-12-11 22:51:06 +00:00
addc.ll
addi-licm.ll [PowerPC] Mark all instructions as non-cheap for MachineLICM 2015-01-08 22:11:49 +00:00
addi-reassoc.ll
addrfuncstr.ll
alias.ll [PPC] Use alias symbols in address computation. 2014-05-29 15:41:38 +00:00
align.ll
allocate-r0.ll
altivec-ord.ll
and_add.ll
and_sext.ll
and_sra.ll
and-branch.ll
and-elim.ll
and-imm.ll
anon_aggr.ll [PowerPC] Fix FrameIndex handling in SelectAddressRegImm 2014-07-20 22:26:40 +00:00
arr-fp-arg-no-copy.ll [PowerPC] Add a regression test for r225251 2015-01-06 16:46:37 +00:00
ashr-neg1.ll
asm-constraints.ll Use the integrated assembler as default on PowerPC 2015-01-13 19:43:45 +00:00
asm-dialect.ll
asm-Zy.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
asym-regclass-copy.ll
atomic-1.ll IR: add "cmpxchg weak" variant to support permitted failure. 2014-06-13 14:24:07 +00:00
atomic-2.ll [Power] Improve the expansion of atomic loads/stores 2014-10-02 22:27:07 +00:00
Atomics-64.ll
atomics-fences.ll [Power] Use lwsync for non-seq_cst fences 2014-10-03 18:04:36 +00:00
atomics-indexed.ll [Power] Improve the expansion of atomic loads/stores 2014-10-02 22:27:07 +00:00
atomics.ll [Power] Improve the expansion of atomic loads/stores 2014-10-02 22:27:07 +00:00
available-externally.ll [PowerPC] 32-bit ELF PIC support 2014-07-18 23:29:49 +00:00
bdzlr.ll
big-endian-actual-args.ll
big-endian-call-result.ll
big-endian-formal-args.ll
blockaddress.ll [PowerPC] Load BlockAddress values from the TOC in 64-bit SVR4 code 2014-10-31 10:33:14 +00:00
bperm.ll [PowerPC] Improve instruction selection bit-permuting operations (64-bit) 2015-01-01 02:53:29 +00:00
branch-opt.ll
bswap-load-store.ll
buildvec_canonicalize.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
bv-pres-v8i1.ll
bv-widen-undef.ll
byval-agg-info.ll
byval-aliased.ll [PowerPC] Mark fixed-offset byvals as pointed-to by IR values 2014-08-16 00:17:05 +00:00
calls.ll
can-lower-ret.ll
cc.ll [PowerPC] 'cc' should be an alias only to 'cr0' 2014-12-04 00:46:20 +00:00
cmp-cmp.ll
cmpb-ppc32.ll [PowerPC] Add support for the CMPB instruction 2015-01-03 01:16:37 +00:00
cmpb.ll [PowerPC] Add support for the CMPB instruction 2015-01-03 01:16:37 +00:00
coalesce-ext.ll
code-align.ll [PowerPC/BlockPlacement] Allow target to provide a per-loop alignment preference 2015-01-03 17:58:24 +00:00
compare-duplicate.ll
compare-simm.ll
complex-return.ll [SDAG] Make the DAGCombine worklist not grow endlessly due to duplicate 2014-07-23 07:08:53 +00:00
constants-i64.ll [PowerPC] Materialize i64 constants using rotation with masking 2015-01-05 03:41:38 +00:00
constants.ll
copysignl.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
cr1eq-no-extra-moves.ll
cr1eq.ll
cr_spilling.ll
cr-spills.ll
crash.ll
crbit-asm.ll
crbits.ll
crsave.ll Use the integrated assembler as default on PowerPC 2015-01-13 19:43:45 +00:00
ctr-cleanup.ll
ctrloop-asm.ll
ctrloop-cpsgn.ll
ctrloop-fp64.ll
ctrloop-i64.ll
ctrloop-large-ec.ll
ctrloop-le.ll
ctrloop-lt.ll
ctrloop-ne.ll
ctrloop-reg.ll
ctrloop-s000.ll
ctrloop-sh.ll
ctrloop-sums.ll
ctrloop-udivti3.ll
ctrloops.ll PowerPC: CTR shouldn't fire if a TLS call is in the loop 2014-12-27 19:45:38 +00:00
cttz-ctlz-spec.ll [PowerPC] Enable speculation of cttz/ctlz 2015-01-05 05:24:42 +00:00
cttz.ll
darwin-labels.ll
dbg.ll IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
DbgValueOtherTargets.test
dcbt-sched.ll
delete-node.ll
div-2.ll
dyn-alloca-aligned.ll
early-ret2.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
early-ret.ll
empty-functions.ll Add back tests for empty function in SPARC and PowerPC. 2014-09-15 22:11:07 +00:00
emptystruct.ll
eqv-andc-orc-nor.ll
extsh.ll
fabs.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
fast-isel-binary.ll
fast-isel-br-const.ll
fast-isel-call.ll [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests 2014-10-19 20:48:47 +00:00
fast-isel-cmp-imm.ll [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests 2014-10-19 20:48:47 +00:00
fast-isel-const.ll [PowerPC] [FastISel] i1 constants must be zero extended 2014-12-25 23:08:25 +00:00
fast-isel-conversion-p5.ll [PPC64] Fix PR20071 (fctiduz generated for targets lacking that instruction) 2014-06-24 20:05:18 +00:00
fast-isel-conversion.ll [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests 2014-10-19 20:48:47 +00:00
fast-isel-crash.ll
fast-isel-ext.ll
fast-isel-fold.ll
fast-isel-GEP-coalesce.ll
fast-isel-indirectbr.ll
fast-isel-load-store.ll [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests 2014-10-19 20:48:47 +00:00
fast-isel-redefinition.ll
fast-isel-ret.ll [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests 2014-10-19 20:48:47 +00:00
fast-isel-shifter.ll
fastisel-gep-promote-before-add.ll
fcpsgn.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
fdiv-combine.ll [PowerPC] Implement combineRepeatedFPDivisors 2014-11-24 23:45:21 +00:00
float-asmprint.ll
float-to-int.ll
floatPSA.ll
fma-assoc.ll More FMA folding opportunities. 2015-01-07 20:54:17 +00:00
fma-ext.ll More FMA folding opportunities. 2015-01-07 20:54:17 +00:00
fma-mutate.ll [PowerPC] Avoid VSX FMA mutate when killed product reg = addend reg 2014-10-21 13:02:37 +00:00
fma.ll [PowerPC] Re-enable VSX test line for fma.ll with -mcpu=pwr7 2014-10-19 20:27:56 +00:00
fmaxnum.ll Add minnum / maxnum codegen 2014-10-21 23:01:01 +00:00
fminnum.ll Add minnum / maxnum codegen 2014-10-21 23:01:01 +00:00
fnabs.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
fneg.ll
fold-li.ll
fold-zero.ll
fp_to_uint.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
fp-branch.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
fp-int-fp.ll
fp-to-int-ext.ll [PowerPC] Fold [sz]ext with fp_to_int lowering where possible 2015-01-09 01:34:30 +00:00
fp-to-int-to-fp.ll [PowerPC] Improve int_to_fp(fp_to_int(x)) combining 2015-01-06 06:01:57 +00:00
fpcopy.ll
frame-size.ll
frameaddr.ll
Frames-alloca.ll [PowerPC] Allow stack frames without parameter save area 2014-06-23 13:47:52 +00:00
Frames-large.ll No need to run llvm-as. NFC. 2014-12-26 16:42:47 +00:00
Frames-leaf.ll
Frames-small.ll [PowerPC] Allow stack frames without parameter save area 2014-06-23 13:47:52 +00:00
frounds.ll
fsel.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
fsl-e500mc.ll
fsl-e5500.ll
fsqrt.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
func-addr.ll [PPC64] Fix PR19893 - improve code generation for local function addresses 2014-06-16 21:36:02 +00:00
glob-comp-aa-crash.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
hello-reloc.s llvm-readobj: fix MachO relocatoin printing a bit. 2014-07-04 10:57:56 +00:00
hello.ll
hidden-vis-2.ll
hidden-vis.ll
i1-ext-fold.ll [PowerPC] Fold i1 extensions with other ops 2015-01-05 21:10:24 +00:00
i1-to-double.ll
i32-to-float.ll
i64_fp_round.ll
i64_fp.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
i64-to-float.ll
i128-and-beyond.ll
ia-mem-r0.ll [PowerPC] Fix inline asm memory operands not to use r0 2014-12-03 23:40:13 +00:00
ia-neg-const.ll Use the integrated assembler as default on PowerPC 2015-01-13 19:43:45 +00:00
iabs.ll
ifcvt.ll
illegal-element-type.ll
in-asm-f64-reg.ll Use the integrated assembler as default on PowerPC 2015-01-13 19:43:45 +00:00
indexed-load.ll [PowerPC] PR19796: Also match ISD::TargetConstant in isIntS16Immediate 2014-05-20 17:20:34 +00:00
indirectbr.ll
inlineasm-copy.ll
inlineasm-i64-reg.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
int-fp-conv-0.ll
int-fp-conv-1.ll
inverted-bool-compares.ll
isel-rc-nox0.ll
isel.ll
ispositive.ll
itofp128.ll
jaggedstructs.ll
LargeAbsoluteAddr.ll
lbz-from-ld-shift.ll [PowerPC] Add a test for truncating a shifted load 2015-01-05 21:33:14 +00:00
lbzux.ll
ld-st-upd.ll [PowerPC] Add another test for load/store with update 2015-01-05 21:22:42 +00:00
lha.ll
lit.local.cfg Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
load-constant-addr.ll
load-shift-combine.ll
long-compare.ll
longdbl-truncate.ll
lsa.ll
lsr-postinc-pos.ll
mask64.ll
mature-mc-support.ll
mcm-1.ll
mcm-2.ll MC uses .lcomm now, so adjust. 2014-08-04 21:06:00 +00:00
mcm-3.ll
mcm-4.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
mcm-5.ll
mcm-6.ll
mcm-7.ll
mcm-8.ll
mcm-9.ll
mcm-10.ll MC uses .lcomm now, so adjust. 2014-08-04 21:06:00 +00:00
mcm-11.ll
mcm-12.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
mcm-default.ll
mcm-obj-2.ll
mcm-obj.ll
mem_update.ll
mem-rr-addr-mode.ll
misched-inorder-latency.ll
misched.ll
mul-neg-power-2.ll
mul-with-overflow.ll
mulhs.ll
mulli64.ll
mult-alt-generic-powerpc64.ll Use the integrated assembler as default on PowerPC 2015-01-13 19:43:45 +00:00
mult-alt-generic-powerpc.ll Use the integrated assembler as default on PowerPC 2015-01-13 19:43:45 +00:00
named-reg-alloc-r0.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
named-reg-alloc-r1-64.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
named-reg-alloc-r1.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
named-reg-alloc-r2-64.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
named-reg-alloc-r2.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
named-reg-alloc-r13-64.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
named-reg-alloc-r13.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
neg.ll
negctr.ll
no-dead-strip.ll
no-extra-fp-conv-ldst.ll [PowerPC] Reuse a load operand in int->fp conversions 2015-01-06 22:31:02 +00:00
novrsave.ll
optcmp.ll
or-addressing-mode.ll
popcnt.ll
post-ra-ec.ll Handle early-clobber registers in the aggressive anti-dep breaker 2014-12-09 01:00:59 +00:00
ppc32-cyclecounter.ll [PowerPC] Fix readcyclecounter to be custom expanded for all 32-bit targets 2014-12-03 00:19:17 +00:00
ppc32-i1-vaarg.ll
ppc32-lshrti3.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
ppc32-pic-large.ll Fully fix Bug #22115. 2015-01-10 01:57:21 +00:00
ppc32-pic.ll Fully fix Bug #22115. 2015-01-10 01:57:21 +00:00
ppc32-vacopy.ll
ppc64-32bit-addic.ll
ppc64-abi-extend.ll
ppc64-align-long-double.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
ppc64-altivec-abi.ll [PowerPC] Fix on-stack AltiVec arguments with 64-bit SVR4 2014-06-23 12:36:34 +00:00
ppc64-anyregcc-crash.ll Revert "r225811 - Revert "r225808 - [PowerPC] Add StackMap/PatchPoint support"" 2015-01-14 01:07:51 +00:00
ppc64-anyregcc.ll Revert "r225811 - Revert "r225808 - [PowerPC] Add StackMap/PatchPoint support"" 2015-01-14 01:07:51 +00:00
ppc64-byval-align.ll [PowerPC] Fix testcase regression 2014-07-07 19:41:54 +00:00
ppc64-calls.ll [PowerPC] Ensure that the TOC reload directly follows bctrl on PPC64 2014-12-23 22:29:40 +00:00
ppc64-crash.ll
ppc64-cyclecounter.ll
ppc64-elf-abi.ll [PowerPC] Fix ppc64-elf-abi.ll test case on Darwin 2014-07-29 12:48:14 +00:00
ppc64-func-desc-hoist.ll [PowerPC] Loosen ELFv1 PPC64 func descriptor loads for indirect calls 2015-01-15 21:17:34 +00:00
ppc64-gep-opt.ll [PPC] Use SeparateConstOffsetFromGEP 2014-11-21 04:35:51 +00:00
ppc64-icbt-pwr7.ll [PPC64] Add support for the ICBT instruction on POWER8. 2015-01-14 20:17:10 +00:00
ppc64-icbt-pwr8.ll [PPC64] Add support for the ICBT instruction on POWER8. 2015-01-14 20:17:10 +00:00
ppc64-linux-func-size.ll
ppc64-nonfunc-calls.ll [PowerPC] Loosen ELFv1 PPC64 func descriptor loads for indirect calls 2015-01-15 21:17:34 +00:00
ppc64-patchpoint.ll Revert "r225811 - Revert "r225808 - [PowerPC] Add StackMap/PatchPoint support"" 2015-01-14 01:07:51 +00:00
ppc64-prefetch.ll [PowerPC] Add support for dcbtst and icbt (prefetch) 2014-08-23 23:21:04 +00:00
ppc64-smallarg.ll [PowerPC] Fix small argument stack slot offset for LE 2014-06-20 16:34:05 +00:00
ppc64-stackmap-nops.ll Revert "r225811 - Revert "r225808 - [PowerPC] Add StackMap/PatchPoint support"" 2015-01-14 01:07:51 +00:00
ppc64-stackmap.ll Revert "r225811 - Revert "r225808 - [PowerPC] Add StackMap/PatchPoint support"" 2015-01-14 01:07:51 +00:00
ppc64-toc.ll
ppc64-vaarg-int.ll [PowerPC] Better lowering for add/or of a FrameIndex 2014-12-11 22:51:06 +00:00
ppc64-zext.ll
ppc64le-aggregates.ll [PowerPC 1/4] Little-endian adjustments for VSX loads/stores 2014-12-09 16:35:51 +00:00
ppc64le-calls.ll [PowerPC] ELFv2 stack space reduction 2014-07-20 23:43:15 +00:00
ppc64le-crsave.ll [PowerPC] ELFv2 explicit CFI for CR fields 2014-07-21 00:03:18 +00:00
ppc64le-localentry.ll [PowerPC] ELFv2 function call changes 2014-07-20 23:31:44 +00:00
ppc64le-smallarg.ll [PowerPC] ELFv2 stack space reduction 2014-07-20 23:43:15 +00:00
ppc440-fp-basic.ll
ppc440-msync.ll [PowerPC] Modern Book-E cores support sync 2014-10-02 22:34:22 +00:00
ppc-prologue.ll
ppc-vaarg-agg.ll
ppcf128-1-opt.ll
ppcf128-1.ll Delete -std-compile-opts. 2014-10-16 20:00:02 +00:00
ppcf128-2.ll
ppcf128-3.ll
ppcf128-4.ll
ppcf128-endian.ll [PowerPC 1/4] Little-endian adjustments for VSX loads/stores 2014-12-09 16:35:51 +00:00
pr3711_widen_bit.ll
pr12757.ll
pr13641.ll
pr13891.ll
pr15031.ll
pr15359.ll
pr15630.ll [Power] Improve the expansion of atomic loads/stores 2014-10-02 22:27:07 +00:00
pr15632.ll
pr16556-2.ll
pr16556.ll
pr16573.ll
pr17168.ll IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
pr17354.ll
pr18663-2.ll Disable IsSub subregister assert. pr18663. 2014-07-31 19:50:53 +00:00
pr18663.ll Disable IsSub subregister assert. pr18663. 2014-07-31 19:50:53 +00:00
pr20442.ll Fix ScalarEvolutionExpander when creating a PHI in a block with duplicate predecessors 2014-07-31 19:13:38 +00:00
private.ll
pwr3-6x.ll
pwr7-gt-nop.ll
quadint-return.ll
r31.ll
recipest.ll [PowerPC] Avoid VSX FMA mutate when killed product reg = addend reg 2014-10-21 13:02:37 +00:00
reg-coalesce-simple.ll
reg-names.ll
reloc-align.ll
remap-crash.ll
remat-imm.ll
resolvefi-basereg.ll [PowerPC] Constrain base register in PPCRegisterInfo::resolveFrameIndex 2014-06-27 13:04:12 +00:00
resolvefi-disp.ll [PowerPC] Fix invalid displacement created by LocalStackAlloc 2014-07-11 17:19:31 +00:00
retaddr2.ll [PowerPC] Don't mark the return-address slot as immutable 2014-12-23 09:45:06 +00:00
retaddr.ll
return-val-i128.ll
rlwimi2.ll [PowerPC] Improve instruction selection bit-permuting operations (32-bit) 2014-12-16 05:51:41 +00:00
rlwimi3.ll
rlwimi-and.ll [PowerPC] Improve instruction selection bit-permuting operations (32-bit) 2014-12-16 05:51:41 +00:00
rlwimi-commute.ll
rlwimi-dyn-and.ll
rlwimi-keep-rsh.ll
rlwimi.ll
rlwinm2.ll
rlwinm.ll
rm-zext.ll [PowerPC] Remove zexts after i32 ctlz 2015-01-05 18:52:29 +00:00
rotl-2.ll
rotl-64.ll
rotl.ll
rounding-ops.ll [PPC] Adjust some PowerPC tests to account for presence/absence of VSX 2014-10-17 01:41:22 +00:00
rs-undef-use.ll
s000-alias-misched.ll
sdag-ppcf128.ll
sdiv-pow2.ll [PowerPC] Don't attempt a 64-bit pow2 division on PPC32 2014-12-23 08:38:50 +00:00
sections.ll Add support for small-model PIC for PowerPC. 2014-11-12 15:16:30 +00:00
select_lt0.ll
select-cc.ll
set0-v8i16.ll
setcc_no_zext.ll
seteq-0.ll
shift128.ll
shl_elim.ll
shl_sext.ll
sign_ext_inreg1.ll
sj-ctr-loop.ll
sjlj.ll
small-arguments.ll
spill-nor0.ll
splat-bug.ll [PATCH] Correct type used for VADD_SPLAT optimization on PowerPC 2014-05-27 15:57:51 +00:00
split-index-tc.ll Enable splitting indexing from loads with TargetConstants 2014-09-02 16:05:23 +00:00
srl-mask.ll
stack-protector.ll
stack-realign.ll [PowerPC] Fix unwind info with dynamic stack realignment 2014-12-01 09:42:32 +00:00
std-unal-fi.ll
stdux-constuse.ll
stfiwx-2.ll
stfiwx.ll
store-load-fwd.ll
store-update.ll
structsinmem.ll
structsinregs.ll
stubs.ll
stwu8.ll
stwu-gta.ll
stwux.ll
sub-bv-types.ll
subc.ll
subreg-postra-2.ll [PowerPC] Don't use a non-allocatable register to implement the 'cc' alias 2014-12-08 22:54:22 +00:00
subreg-postra.ll [PowerPC] Don't use a non-allocatable register to implement the 'cc' alias 2014-12-08 22:54:22 +00:00
subsumes-pred-regs.ll [SDAG] Make the DAGCombine worklist not grow endlessly due to duplicate 2014-07-23 07:08:53 +00:00
svr4-redzone.ll [PowerPC] Allow stack frames without parameter save area 2014-06-23 13:47:52 +00:00
tailcall1-64.ll
tailcall1.ll
tailcallpic1.ll
tls-pic.ll Revert part of the PIC tests (TLS part) 2014-11-12 16:50:15 +00:00
tls-store2.ll [PowerPC] Replace foul hackery with real calls to __tls_get_addr 2014-11-11 20:44:09 +00:00
tls.ll
toc-load-sched-bug.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
trampoline.ll
unal4-std.ll [PowerPC] Enable use of lxvw4x/stxvw4x in VSX code generation 2014-10-17 15:13:38 +00:00
unal-altivec2.ll
unal-altivec-wint.ll [PowerPC] Implement PPCTargetLowering::getTgtMemIntrinsic 2014-08-13 01:15:40 +00:00
unal-altivec.ll
unaligned.ll [PowerPC] Enable use of lxvw4x/stxvw4x in VSX code generation 2014-10-17 15:13:38 +00:00
unsafe-math.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
unwind-dw2-g.ll IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
unwind-dw2.ll
vaddsplat.ll
varargs-struct-float.ll [PowerPC] ELFv2 aggregate passing support 2014-07-21 00:13:26 +00:00
varargs.ll
vcmp-fold.ll
vec_auto_constant.ll
vec_br_cmp.ll
vec_buildvector_loadstore.ll
vec_call.ll
vec_cmp.ll [PowerPC] Fix and improve vector comparisons 2014-08-04 13:13:57 +00:00
vec_constants.ll
vec_conv.ll
vec_extload.ll
vec_fmuladd.ll
vec_fneg.ll
vec_insert.ll
vec_misaligned.ll [PowerPC 1/4] Little-endian adjustments for VSX loads/stores 2014-12-09 16:35:51 +00:00
vec_mul.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
vec_perf_shuffle.ll
vec_rounding.ll
vec_select.ll
vec_shift.ll
vec_shuffle_le.ll [PowerPC 1/4] Little-endian adjustments for VSX loads/stores 2014-12-09 16:35:51 +00:00
vec_shuffle.ll
vec_splat_constant.ll
vec_splat.ll
vec_sqrt.ll
vec_urem_const.ll [PowerPC] Add target triple to vec_urem_const.ll test case 2014-08-04 14:55:26 +00:00
vec_vrsave.ll
vec_zero.ll
vec-abi-align.ll [PowerPC] Enable use of lxvw4x/stxvw4x in VSX code generation 2014-10-17 15:13:38 +00:00
vector-identity-shuffle.ll
vector.ll
vperm-instcombine.ll [PPC64LE] Add test case for r210282 commit 2014-06-05 22:57:38 +00:00
vperm-lowering.ll [PPC64LE] Fix lowering of BUILD_VECTOR and SHUFFLE_VECTOR for little endian 2014-06-06 14:06:26 +00:00
vrsave-spill.ll
vrspill.ll [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu 2014-10-19 21:29:21 +00:00
vsx_insert_extract_le.ll [PowerPC 4/4] Enable little-endian support for VSX. 2014-12-09 16:59:57 +00:00
vsx_shuffle_le.ll [PowerPC 4/4] Enable little-endian support for VSX. 2014-12-09 16:59:57 +00:00
vsx-args.ll [PowerPC]Update Power VSX test cases to also test fast-isel 2014-12-05 20:32:05 +00:00
vsx-div.ll [PowerPC] Add VSX builtins for vec_div 2014-11-14 12:10:40 +00:00
vsx-fma-m.ll [PowerPC]Update Power VSX test cases to also test fast-isel 2014-12-05 20:32:05 +00:00
vsx-ldst-builtin-le.ll [PowerPC 4/4] Enable little-endian support for VSX. 2014-12-09 16:59:57 +00:00
vsx-ldst.ll [PowerPC 4/4] Enable little-endian support for VSX. 2014-12-09 16:59:57 +00:00
vsx-minmax.ll [PowerPC] Initial VSX intrinsic support, with min/max for vector double 2014-10-31 19:19:07 +00:00
vsx-p8.ll [PowerPC]Update Power VSX test cases to also test fast-isel 2014-12-05 20:32:05 +00:00
vsx-self-copy.ll [PowerPC]Update Power VSX test cases to also test fast-isel 2014-12-05 20:32:05 +00:00
vsx-spill.ll [PowerPC]Update Power VSX test cases to also test fast-isel 2014-12-05 20:32:05 +00:00
vsx.ll [PowerPC]Update Power VSX test cases to also test fast-isel 2014-12-05 20:32:05 +00:00
vtable-reloc.ll
weak_def_can_be_hidden.ll
zero-not-run.ll
zext-free.ll [PowerPC] Mark zext of a small scalar load as free 2015-01-10 08:21:59 +00:00