1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/Other
Chandler Carruth 9586106cf5 [PM/CGSCC] Teach the CGSCC pass manager components to gracefully handle
invalidated SCCs even when we do not have an updated SCC to redirect
towards.

This comes up in a fairly subtle and surprising circumstance: we need to
have a connected but internal node in the call graph which later becomes
a disconnected island, and then gets deleted. All of this needs to
happen mid-CGSCC walk. Because it is disconnected, we have no way of
computing a new "current" SCC when it gets deleted. Instead, we need to
explicitly check for a deleted "current" SCC and bail out of the current
CGSCC step. This will bubble all the way up to the post-order walk and
then resume correctly.

I've included minimal tests for this bug. The specific behavior
matches something we've seen in the wild with the new PM combined with
ThinLTO and sample PGO, but I've not yet confirmed whether this is the
only issue there.

llvm-svn: 313242
2017-09-14 08:33:57 +00:00
..
Inputs Add test coverage for new PM PGOOpt handling. 2017-07-26 02:00:43 +00:00
X86
2002-01-31-CallGraph.ll Make shell redirection construct portable 2017-07-12 13:24:46 +00:00
2002-02-24-InlineBrokePHINodes.ll
2002-03-11-ConstPropCrash.ll
2003-02-19-LoopInfoNestingBug.ll
2004-08-16-PackedConstantInlineStore.ll
2004-08-16-PackedGlobalConstant.ll
2004-08-16-PackedSelect.ll
2004-08-16-PackedSimple.ll
2004-08-20-PackedControlFlow.ll
2006-02-05-PassManager.ll
2007-04-24-eliminate-mostly-empty-blocks.ll
2007-06-05-PassID.ll
2007-06-28-PassManager.ll
2007-09-10-PassManager.ll
2008-02-14-PassManager.ll
2008-06-04-FieldSizeInPacked.ll
2008-10-06-RemoveDeadPass.ll
2008-10-15-MissingSpace.ll
2009-03-31-CallGraph.ll
2009-06-05-no-implicit-float.ll
2009-09-14-function-elements.ll
2010-05-06-Printer.ll
attribute-comment.ll
bcanalyzer-block-info.txt
can-execute.txt [llvm] Get rid of "%T" expansions 2017-08-15 20:29:24 +00:00
cgscc-devirt-iteration.ll
cgscc-disconnected-invalidation.ll [PM/CGSCC] Teach the CGSCC pass manager components to gracefully handle 2017-09-14 08:33:57 +00:00
cgscc-iterate-function-mutation.ll
cgscc-libcall-update.ll Merge isKnownNonNull into isKnownNonZero 2017-09-09 18:23:11 +00:00
cgscc-observe-devirt.ll
cleanup-lcssa.ll
close-stderr.ll
constant-fold-gep-address-spaces.ll
constant-fold-gep.ll
debugcounter-newgvn.ll
debugcounter-predicateinfo.ll
extract-alias.ll
extract-linkonce.ll
extract-weak-odr.ll
extract.ll
FileCheck-space.txt
invalid-commandline-option.ll
invariant.group.barrier.ll
lint.ll
lit-globbing.ll [llvm] Get rid of "%T" expansions 2017-08-15 20:29:24 +00:00
lit-quoting.txt
lit-unicode.txt
llvm-nm-without-aliases.ll
loop-pass-ordering.ll
loop-pm-invalidation.ll
new-pass-manager.ll [PM] Switch the CGSCC debug messages to use the standard LLVM debug 2017-08-11 05:47:13 +00:00
new-pm-defaults.ll [DivRempairs] add a pass to optimize div/rem pairs (PR31028) 2017-09-09 13:38:18 +00:00
new-pm-lto-defaults.ll Make ICP uses PSI to check for hotness. 2017-08-08 20:57:33 +00:00
new-pm-pgo.ll Move the SampleProfileLoader right after EarlyFPM. 2017-08-07 20:23:20 +00:00
new-pm-thinlto-defaults.ll [DivRempairs] add a pass to optimize div/rem pairs (PR31028) 2017-09-09 13:38:18 +00:00
opt-bisect-helper.py
opt-bisect-legacy-pass-manager.ll
opt-override-mcpu-mattr.ll
opt-twice.ll
optimization-remarks-inline.ll
optimization-remarks-invalidation.ll
optimization-remarks-lazy-bfi.ll
optimize-options.ll
pass-pipeline-parsing.ll
pass-pipelines.ll fix typos in comments; NFC 2017-07-11 06:04:59 +00:00
pipefail.txt
pr32085.ll
ResponseFile.ll
spir_cc.ll
statistic.ll
umask.ll
writing-to-stdout.ll