search for: hotcoldsplit

Displaying 5 results from an estimated 5 matches for "hotcoldsplit".

2019 Jan 17
2
stale info in the assumption cache
...tractor. As a result we end up with stale references to the llvm.assume calls that were moved to the outlined function in the parent function's cache. The problem can be reproduced on the attached file as follows (many thanks to Andy Kaylor for creating this reproducer) $ opt -slp-vectorizer -hotcoldsplit -slp-vectorizer -S -o - extract.ll opt: .../llvm/lib/Analysis/CodeMetrics.cpp:107: static void llvm::CodeMetrics::collectEphemeralValues(const llvm::Function*, llvm::AssumptionCache*, llvm::SmallPtrSetImpl<const llvm::Value*>&): Assertion `I->getParent()->getParent() == F &&...
2020 Aug 05
10
[RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
...ode bytes are never executed, but likely to be in the cache. Function splitting is a well known compiler transformation primarily targeting improved code locality to improve performance. LLVM has a middle-end, target agnostic hot cold splitting pass <https://llvm.org/devmtg/2019-10/slides/Kumar-HotColdSplitting.pdf> as well as a partial inlining pass <https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/IPO/PartialInlining.cpp> which performs similar transformations, as noted by the authors in a recent email thread <https://lists.llvm.org/pipermail/llvm-dev/2020-June/142429...
2019 Jan 17
2
stale info in the assumption cache
...tractor. As a result we end up with stale references to the llvm.assume calls that were moved to the outlined function in the parent function's cache. The problem can be reproduced on the attached file as follows (many thanks to Andy Kaylor for creating this reproducer) $ opt -slp-vectorizer -hotcoldsplit -slp-vectorizer -S -o - extract.ll opt: .../llvm/lib/Analysis/CodeMetrics.cpp:107: static void llvm::CodeMetrics::collectEphemeralValues(const llvm::Function*, llvm::AssumptionCache*, llvm::SmallPtrSetImpl<const llvm::Value*>&): Assertion `I->getParent()->getParent() == F &&...
2020 Aug 05
3
[RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
...be in the cache. >> >> Function splitting is a well known compiler transformation primarily >> targeting improved code locality to improve performance. LLVM has a >> middle-end, target agnostic hot cold splitting pass >> <https://llvm.org/devmtg/2019-10/slides/Kumar-HotColdSplitting.pdf> as >> well as a partial inlining pass >> <https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/IPO/PartialInlining.cpp> >> which performs similar transformations, as noted by the authors in a >> recent email thread >> <https://lists...
2020 Aug 10
2
[RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
...the cache. Function splitting is a well known compiler transformation primarily targeting improved code locality to improve performance. LLVM has a middle-end, target agnostic hot cold splitting pass<https://urldefense.proofpoint.com/v2/url?u=https-3A__llvm.org_devmtg_2019-2D10_slides_Kumar-2DHotColdSplitting.pdf&d=DwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=KfYo542rDdZQGClmgz-RBw&m=-cUmMKRcOXZHF-PpVxO_Dfg2mkIgP4L_QomIwDizeEE&s=xfh7APIZXGJikzsEVba8f1JsDG3aMqQCrlbanFKDvsI&e=> as well as a partial inlining pass<https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/IP...