1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 21:42:54 +02:00
llvm-mirror/test/CodeGen/Hexagon
Krzysztof Parzyszek 8d7cd1c8ba Fix two bugs in the pipeliner in renaming phis in the prolog and epilog
When the pipeliner is renaming phi values, it may need to iterate through
the phi operands to check for other phis. However, the pipeliner should
stop once it reaches a phi that is outside the pipelined loop.

Also, when the generateExistingPhis code is unable to reuse an existing
phi, the default code that computes the PhiOp2 is only to be used when
the pipeliner is generating the kernel. Otherwise, the phi may be a value
computed earlier in the same epilog.

Patch by Brendon Cahoon.

llvm-svn: 290355
2016-12-22 18:49:55 +00:00
..
intrinsics [Hexagon] Enforce LLSC packetization rules 2016-08-19 16:57:05 +00:00
vect
absaddr-store.ll
absimm.ll
adde.ll
addh-sext-trunc.ll This reapplies r281304. The issue was that I had missed 2016-09-14 08:20:03 +00:00
addh-shifted.ll
addh.ll
addr-calc-opt.ll
addrmode-indoff.ll
alu64.ll
always-ext.ll
anti-dep-partial.mir Move .mir tests to appropriate directories 2016-12-09 19:08:15 +00:00
args.ll
ashift-left-right.ll
Atomics.ll
avoid-predspill-calleesaved.ll
avoid-predspill.ll
barrier-flag.ll
base-offset-addr.ll
base-offset-post.ll
bit-eval.ll
bit-extractu-half.ll
bit-gen-rseq.ll
bit-loop-rc-mismatch.ll
bit-loop.ll
bit-phi.ll
bit-rie.ll
bit-skip-byval.ll
bit-validate-reg.ll
bit-visit-flowq.ll [Hexagon] Clear the flow queue after visiting a single instruction 2016-09-13 14:36:55 +00:00
bitconvert-vector.ll
block-addr.ll [Hexagon] Mark PS_jumpret as pseudo-instruction, expand it into J2_jumpr 2016-08-19 14:04:45 +00:00
block-ranges-nodef.ll
branch-non-mbb.ll
branchfolder-keep-impdef.ll Do not remove implicit defs in BranchFolder 2016-10-12 19:50:57 +00:00
BranchPredict.ll
brev_ld.ll
brev_st.ll
bugAsmHWloop.ll
build-vector-shuffle.ll [Hexagon] Better handling of HVX vector lowering 2016-09-13 21:16:07 +00:00
builtin-prefetch-offset.ll
builtin-prefetch.ll
calling-conv-2.ll
callr-dep-edge.ll
cext-check.ll
cext-valid-packet1.ll
cext-valid-packet2.ll
cext.ll
cexti16.ll
cfi-late.ll
cfi-offset.ll
checktabs.ll
circ_ld.ll
circ_ldd_bug.ll
circ_ldw.ll
circ_st.ll
circ-load-isel.ll
clr_set_toggle.ll
cmp_pred2.ll
cmp_pred_reg.ll
cmp_pred.ll
cmp-extend.ll
cmp-promote.ll
cmp-to-genreg.ll
cmp-to-predreg.ll
cmp.ll
cmpb_pred.ll
cmpb-eq.ll
combine_ir.ll
combine.ll
common-gep-basic.ll
common-gep-icm.ll
compound.ll
const64.ll
const-pool-tf.ll
constp-clb.ll
constp-combine-neg.ll
constp-ctb.ll
constp-extract.ll
constp-physreg.ll
constp-rewrite-branches.ll
constp-rseq.ll
constp-vsplat.ll
convertdptoint.ll
convertdptoll.ll
convertsptoint.ll
convertsptoll.ll
copy-to-combine-dbg.ll [Hexagon] Check for block end when skipping debug instructions 2016-08-24 22:36:35 +00:00
csr-func-usedef.ll
ctlz-cttz-ctpop.ll
ctor.ll
dadd.ll
dead-store-stack.ll [Hexagon] Remove unsafe load instructions that affect Stack Slot Coloring 2016-11-14 17:11:00 +00:00
dmul.ll
double.ll
doubleconvert-ieee-rnd-near.ll
dsub.ll
dualstore.ll
duplex.ll
early-if-conversion-bug1.ll
early-if-phi-i1.ll
early-if-spare.ll
early-if-vecpi.ll
early-if.ll
eh_return.ll
eliminate-pred-spill.ll
expand-condsets-basic.ll
expand-condsets-def-undef.mir [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
expand-condsets-extend.ll [Hexagon] Deal with undefs when extending live intervals 2016-09-01 13:59:35 +00:00
expand-condsets-impuse.mir [Hexagon] Maintain kill flags through splitting in expand-condsets 2016-10-28 15:50:22 +00:00
expand-condsets-pred-undef.ll
expand-condsets-rm-reg.mir [Hexagon] Remove registers coalesced in expand-condsets from live intervals 2016-11-02 17:59:54 +00:00
expand-condsets-rm-segment.ll
expand-condsets-same-inputs.mir [Hexagon] Don't expand mux instructions with both sources identical 2016-10-31 15:45:09 +00:00
expand-condsets-undef2.ll [Hexagon] Check for empty live interval 2016-08-19 14:29:43 +00:00
expand-condsets-undef.ll
expand-vstorerw-undef.ll [Hexagon] Handle spills of partially defined double vector registers 2016-10-21 16:38:29 +00:00
extload-combine.ll
extract-basic.ll
fadd.ll
fcmp.ll
fixed-spill-mutable.ll Fixed spill stack objects are mutable 2016-08-31 13:52:17 +00:00
float-amode.ll
float.ll
floatconvert-ieee-rnd-near.ll
fminmax.ll
fmul.ll
frame-offset-overflow.ll
frame.ll
fsel.ll
fsub.ll
fusedandshift.ll
gp-plus-offset-load.ll
gp-plus-offset-store.ll
gp-rel.ll
hwloop1.ll
hwloop2.ll
hwloop3.ll
hwloop4.ll
hwloop5.ll
hwloop-cleanup.ll
hwloop-const.ll
hwloop-crit-edge.ll
hwloop-dbg.ll
hwloop-le.ll
hwloop-loop1.ll
hwloop-lt1.ll
hwloop-lt.ll
hwloop-missed.ll
hwloop-ne.ll
hwloop-noreturn-call.ll
hwloop-ph-deadcode.ll
hwloop-pos-ivbump1.ll
hwloop-preh.ll
hwloop-preheader.ll
hwloop-range.ll
hwloop-recursion.ll
hwloop-wrap2.ll
hwloop-wrap.ll
i1_VarArg.ll
i8_VarArg.ll
i16_VarArg.ll
idxload-with-zero-offset.ll
ifcvt-diamond-bad.ll
ifcvt-diamond-bug-2016-08-26.ll IfConversion: Fix branch predication bug. 2016-08-29 18:27:12 +00:00
ifcvt-edge-weight.ll
ifcvt-impuse-livein.mir MachineFunctionProperties/MIRParser: Rename AllVRegsAllocated->NoVRegs, compute it 2016-08-25 01:27:13 +00:00
ifcvt-live-subreg.mir IfConversion: Add implicit uses for redefined regs with live subregisters 2016-09-28 20:07:41 +00:00
indirect-br.ll
inline-asm-hexagon.ll
inline-asm-i1.ll [Hexagon] Add RUN line to test 2016-08-19 19:36:35 +00:00
inline-asm-qv.ll
insert4.ll [Hexagon] Eliminate Insert4 pseudo-instruction, use combines instead 2016-11-09 14:16:29 +00:00
insert-basic.ll
is-legal-void.ll
lit.local.cfg
livephysregs-lane-masks2.mir Handle non-~0 lane masks on live-in registers in LivePhysRegs 2016-10-28 20:06:37 +00:00
livephysregs-lane-masks.mir Handle lane masks in LivePhysRegs when adding live-ins 2016-10-12 22:53:41 +00:00
loadi1-G0.ll
loadi1-v4-G0.ll
loadi1-v4.ll
loadi1.ll
long-calls.ll
loop-prefetch.ll
lower-extract-subvector.ll
macint.ll
maxd.ll
maxh.ll
maxud.ll
maxuw.ll
maxw.ll
mem-fi-add.ll
memcpy-likely-aligned.ll
memops1.ll
memops2.ll
memops3.ll
memops-stack.ll
memops.ll
mind.ll
minu-zext-8.ll
minu-zext-16.ll
minud.ll
minuw.ll
minw.ll
misaligned_double_vector_store_not_fast.ll
misaligned-access.ll
misched-top-rptracker-sync.ll
mpy.ll
mulhs.ll
mux-basic.ll
newvaluejump2.ll
newvaluejump.ll
newvalueSameReg.ll [Hexagon] Fixes for new-value jump formation 2016-08-19 17:54:49 +00:00
newvaluestore.ll
NVJumpCmp.ll
opt-addr-mode.ll
opt-fabs.ll
opt-fneg.ll
opt-spill-volatile.ll
packetize_cond_inst.ll
packetize-cfi-location.ll
packetize-return-arg.ll [Hexagon] Packetize return value setup with the return instruction 2016-08-23 16:01:01 +00:00
packetize-tailcall-arg.ll
peephole-kill-flags.ll
peephole-op-swap.ll
pic-jumptables.ll
pic-local.ll
pic-regusage.ll
pic-simple.ll Set some tests to an unknown vendor and OS 2016-10-03 21:58:20 +00:00
pic-static.ll Set some tests to an unknown vendor and OS 2016-10-03 21:58:20 +00:00
post-inc-aa-metadata.ll Propagate TBAA info in SelectionDAG::getIndexedLoad 2016-08-29 19:50:15 +00:00
post-ra-kill-update.mir Fix machine operand traversal in ScheduleDAGInstrs::fixupKills 2016-10-05 13:15:06 +00:00
postinc-load.ll
postinc-offset.ll
postinc-store.ll
pred-absolute-store.ll
pred-gp.ll
pred-instrs.ll
predicate-copy.ll
predicate-logical.ll
predicate-rcmp.ll
propagate-vcombine.ll
rdf-copy-undef2.ll
rdf-copy.ll
rdf-dead-loop.ll
rdf-extra-livein.ll [RDF] Fix liveness propagation through shadows 2016-10-03 20:17:20 +00:00
rdf-filter-defs.ll [RDF] Fix live def propagation through basic block 2016-10-05 20:08:09 +00:00
rdf-ignore-undef.ll [RDF] Ignore undef use operands 2016-09-06 17:03:13 +00:00
rdf-inline-asm-fixed.ll
rdf-inline-asm.ll
rdf-multiple-phis-up.ll [RDF] Further improve handling of multiple phis reached from shadows 2016-09-08 20:48:42 +00:00
rdf-phi-shadows.ll [RDF] Fix liveness analysis for phi nodes with shadow uses 2016-09-07 20:37:05 +00:00
rdf-phi-up.ll [RDF] Switch RefMap in liveness calculation to use lane masks 2016-10-19 16:30:56 +00:00
rdf-reset-kills.ll
reg-scavengebug-3.ll
reg-scavenger-valid-slot.ll
regalloc-bad-undef.mir [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
relax.ll
remove_lsr.ll
remove-endloop.ll
restore-single-reg.ll
ret-struct-by-val.ll
runtime-stkchk.ll
sdata-array.ll
sdata-basic.ll
sdr-basic.ll
sdr-shr32.ll
section_7275.ll
select-instr-align.ll
sf-min-max.ll
sffms.ll
shrink-frame-basic.ll
signed_immediates.ll
simple_addend.ll
simpletailcall.ll
split-const32-const64.ll
stack-align1.ll
stack-align2.ll
stack-alloca1.ll
stack-alloca2.ll
static.ll
store-shift.ll
store-widen-aliased-load.ll
store-widen-negv2.ll
store-widen-negv.ll
store-widen.ll
storerd-io-over-rr.ll
storerinewabs.ll
struct_args_large.ll
struct_args.ll
sube.ll
subi-asl.ll [Hexagon] Fix incorrect generation of S4_subi_asl_ri 2016-08-19 16:35:05 +00:00
SUnit-boundary-prob.ll [Hexagon] segv while processing SUnit with nullNodePtr 2016-09-17 16:21:09 +00:00
swp-const-tc.ll
swp-dag-phi.ll
swp-epilog-phi10.ll Fix two bugs in the pipeliner in renaming phis in the prolog and epilog 2016-12-22 18:49:55 +00:00
swp-epilog-reuse-1.ll
swp-epilog-reuse.ll
swp-matmul-bitext.ll
swp-max.ll
swp-multi-loops.ll
swp-prolog-phi4.ll Fix two bugs in the pipeliner in renaming phis in the prolog and epilog 2016-12-22 18:49:55 +00:00
swp-vect-dotprod.ll
swp-vmult.ll
swp-vsum.ll
tail-call-mem-intrinsics.ll
tail-call-trunc.ll
tail-dup-subreg-abort.ll
tail-dup-subreg-map.ll
tailcall_fastcc_ccc.ll [Hexagon] Allow tail-call optimization when mixing C and fast calling conv 2016-08-19 15:02:18 +00:00
tfr-to-combine.ll
tls_pic.ll
tls_static.ll Set some tests to an unknown vendor and OS 2016-10-03 21:58:20 +00:00
two-crash.ll [Hexagon] Avoid replacing full regs with subregisters in tied operands 2016-10-06 16:18:04 +00:00
union-1.ll
usr-ovf-dep.ll
v6vec-vprint.ll [Hexagon] vector store print tracing. 2016-08-25 13:35:48 +00:00
v60-cur.ll
v60-vsel1.ll [Hexagon] Do not expand ISD::SELECT for HVX vectors 2016-10-27 14:30:16 +00:00
v60Intrins.ll
v60small.ll
v60Vasr.ll
vaddh.ll
validate-offset.ll
vassign-to-combine.ll
vdmpy-halide-test.ll
vec-pred-spill1.ll
vector-align.ll
vector-ext-load.ll [Hexagon] Expand sext- and zextloads of vector types, not just extloads 2016-09-08 17:42:14 +00:00
vload-postinc-sel.ll
vmpa-halide-test.ll
vpack_eo.ll
vselect-pseudo.ll
vsplat-isel.ll
zextloadi1.ll