llvm-project/llvm/test/Other
Wenlei He 7e71aa24bc [LICM] Make Loop ICM profile aware
Summary:
Hoisting/sinking instruction out of a loop isn't always beneficial. Hoisting an instruction from a cold block inside a loop body out of the loop could hurt performance. This change makes Loop ICM profile aware - it now checks block frequency to make sure hoisting/sinking anly moves instruction to colder block.

Test Plan:

ninja check

Reviewers: asbirlea, sanjoy, reames, nikic, hfinkel, vsk

Reviewed By: asbirlea

Subscribers: fhahn, vsk, davidxl, xbolva00, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65060

llvm-svn: 368526
2019-08-11 06:05:35 +00:00
..
Inputs [PGO] Context sensitive PGO (part 4) 2019-03-06 19:31:37 +00:00
X86 [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
2002-01-31-CallGraph.ll
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 Fix inconsistency with/without debug information (-g) 2018-08-07 12:14:01 +00:00
2007-06-05-PassID.ll Revert "Extend CFGPrinter and CallPrinter with Heat Colors" 2018-06-29 17:48:58 +00:00
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 Print newline after banner for ModulePass 2018-11-14 10:05:28 +00:00
FileCheck-space.txt
ResponseFile.ll
attribute-comment.ll
available-externally-lto.ll [clang][NewPM] Do not eliminate available_externally durng `-O2 -flto` runs 2019-06-20 19:44:51 +00:00
bcanalyzer-block-info.txt
can-execute.txt test/Other/can-execute.txt: delete %t after the test 2018-09-14 20:41:42 +00:00
cfg-printer-branch-weights.ll [CFG Printer] Add support for writing the dot files with a custom 2018-10-09 04:30:23 +00:00
cgscc-devirt-iteration.ll [PM][FunctionAttrs] add NoUnwind attribute inference to PostOrderFunctionAttrs pass 2018-03-23 21:46:16 +00:00
cgscc-disconnected-invalidation.ll
cgscc-iterate-function-mutation.ll
cgscc-libcall-update.ll Add a 'dynamic' parameter to the objectsize intrinsic 2019-01-30 20:34:35 +00:00
cgscc-observe-devirt.ll
cleanup-lcssa.ll
close-stderr.ll
codegenprepare-and-debug.ll Fix inconsistency with/without debug information (-g) 2018-08-07 12:14:01 +00:00
constant-fold-gep-address-spaces.ll
constant-fold-gep.ll
cspgo-O2-pipeline.ll [PGO] Context sensitive PGO (part 4) 2019-03-06 19:31:37 +00:00
debugcounter-dce.ll [DCE] Add DebugCounter support 2018-09-13 20:29:50 +00:00
debugcounter-earlycse.ll [EarlyCSE] Add debug counter for debugging mis-optimizations. NFC. 2018-04-06 18:47:33 +00:00
debugcounter-newgvn.ll
debugcounter-predicateinfo.ll [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types. 2018-07-24 14:49:52 +00:00
extract-alias.ll
extract-linkonce.ll
extract-weak-odr.ll
extract.ll Make GlobalValues with non-default visibilility dso_local. 2018-01-18 02:08:23 +00:00
invalid-commandline-option.ll
invariant.group.ll [FunctionAttrs] Annotate "willreturn" for intrinsics 2019-07-28 06:09:56 +00:00
lint.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
lit-globbing.ll Fix more inconsistent line endings. NFC. 2017-12-18 19:46:56 +00:00
lit-quoting.txt
lit-unicode.txt
llvm-nm-without-aliases.ll [llvm-nm][llvm-readelf] Avoid single-dash -long-option in tests 2019-04-27 16:12:14 +00:00
loop-deletion-printer.ll [NewPM] -print-module-scope -print-after now prints module even after invalidated Loop/SCC 2018-12-21 11:49:05 +00:00
loop-pass-ordering.ll
loop-pass-printer.ll [New PM][PassInstrumentation] IR printing support for New Pass Manager 2018-09-24 16:08:15 +00:00
loop-pm-invalidation.ll [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
machine-size-remarks.ll Add REQUIRES line to machine-size-remarks 2018-09-10 23:53:08 +00:00
new-pass-manager.ll [AliasAnalysis/NewPassManager] Invalidate AAManager less often. 2019-04-30 22:15:47 +00:00
new-pm-cspgo.ll [PGO] Context sensitive PGO (part 4) 2019-03-06 19:31:37 +00:00
new-pm-defaults.ll Update LLVM test to not check for the EliminateAvailableExternallyPass 2019-06-20 20:51:58 +00:00
new-pm-lto-defaults.ll [PGO] Profile guided code size optimization. 2019-04-15 16:49:00 +00:00
new-pm-pgo-O0.ll [PGO] Add PGO support at -O0 in the experimental new pass manager 2019-08-01 22:36:34 +00:00
new-pm-pgo.ll [HotColdSplit] Schedule splitting late to fix perf regression 2019-02-15 18:46:44 +00:00
new-pm-pr42726-cgscc.ll [NewPassManager] Resolve assertion in CGSCCPassManager when CallCounts change. 2019-08-02 18:37:03 +00:00
new-pm-thinlto-defaults.ll [SLPVectorizer] Set flag to previous default. 2019-05-23 19:07:41 +00:00
opt-O0-pipeline.ll [test] Allow for optional No-Op Barrier Pass in O0 pipeline 2018-03-23 12:47:54 +00:00
opt-O2-pipeline.ll [LICM] Make Loop ICM profile aware 2019-08-11 06:05:35 +00:00
opt-O3-pipeline.ll [LICM] Make Loop ICM profile aware 2019-08-11 06:05:35 +00:00
opt-Os-pipeline.ll [LICM] Make Loop ICM profile aware 2019-08-11 06:05:35 +00:00
opt-bisect-helper.py Python compat - print statement 2019-01-03 14:11:33 +00:00
opt-bisect-legacy-pass-manager.ll [lit, python] Always add quotes around the python path in lit 2018-08-06 22:37:44 +00:00
opt-hot-cold-split.ll [HotColdSplit] Schedule splitting late to fix perf regression 2019-02-15 18:46:44 +00:00
opt-override-mcpu-mattr.ll
opt-twice.ll
optimization-remarks-inline.ll
optimization-remarks-invalidation.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
optimization-remarks-lazy-bfi.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
optimize-inrange-gep.ll Prevent Constant Folding From Optimizing inrange GEP 2018-09-11 01:53:36 +00:00
optimize-options.ll
pass-pipeline-parsing.ll [NewPM] Fixing test failure on Windows - removed opt binary name from pattern 2018-10-17 11:01:15 +00:00
pass-pipelines.ll [LICM] Make Loop ICM profile aware 2019-08-11 06:05:35 +00:00
pipefail.txt
pr32085.ll Use no-op opt run to eliminate the difference in bb pred comment, per chandler's suggestion. It is better than using sed on portability. 2018-05-01 17:19:25 +00:00
print-debug-counter.ll Actually fix test from r345085 REQUIRE: asserts 2018-10-23 22:07:34 +00:00
print-module-scope.ll [New PM][PassInstrumentation] IR printing support for New Pass Manager 2018-09-24 16:08:15 +00:00
printer.ll [New PM][PassInstrumentation] IR printing support for New Pass Manager 2018-09-24 16:08:15 +00:00
scalable-vector-array.ll Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
scalable-vector-struct.ll Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
scc-deleted-printer.ll [NewPM] -print-module-scope -print-after now prints module even after invalidated Loop/SCC 2018-12-21 11:49:05 +00:00
scc-pass-printer.ll Fixing -print-module-scope for legacy SCC passes 2018-12-03 14:48:15 +00:00
size-remarks.ll Make YAML quote forward slashes. 2018-10-12 16:31:20 +00:00
spir_cc.ll
statistic.ll Reland: [Timers] Use the pass argument name for JSON keys in time-passes 2018-06-13 21:03:56 +00:00
time-passes.ll [TimePasses] allow -time-passes reporting into a custom stream 2019-03-15 22:15:23 +00:00
umask.ll [CMake] Use normalized Windows target triples 2018-08-09 02:16:18 +00:00
writing-to-stdout.ll