search for: getdomtree

Displaying 12 results from an estimated 12 matches for "getdomtree".

2018 Jan 28
0
Polly Dependency Analysis in MyPass
...().getLoopInfo(); auto &RI = getAnalysis<RegionInfoPass>().getRegionInfo(); auto &AA = getAnalysis<AAResultsWrapperPass>().getAAResults(); auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE(); auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree(); Result2.reset(new ScopDetection(F, DT, SE, LI, RI, AA)); auto &SD2 = getAnalysis<polly::ScopDetectionWrapperPass>().getSD(); auto &SE2 = getAnalysis<ScalarEvolutionWrapperPass>().getSE(); auto &LI2 = getAnalysis<LoopInfoWrapperPass>().getLoopInfo(); a...
2018 Jan 28
4
Polly Dependency Analysis in MyPass
Hello, I need to analyze dependencies in my llvm ir by using polly. i created a new pass called mypass there i added polly dependency analysis pass but when i execute this pass in gdb i get no data. Why is that so? My code is follows; namespace { struct mypass : public FunctionPass { static char ID; mypass() : FunctionPass(ID) { } virtual bool runOnFunction(Function &F) {
2019 Mar 26
2
On-the-fly passes
...h the legacy and new pass managers, I've abstracted away the code to get the passes it depends on: bool MyPass::runOnModule(Module &M) override { auto DominatorGetter = [this] (Function &F) -> DominatorTree & { return this->getAnalysis<DominatorTreeWrapperPass>(F).getDomTree(); }; auto PostDominatorGetter = [this] (Function &F) -> PostDominatorTree & { return this-> getAnalysis<PostDominatorTreeWrapperPass>(F).getPostDomTree(); }; auto LoopInfoGetter = [this] (Function &F) -> LoopInfo & { retu...
2018 Jan 28
1
Polly Dependency Analysis in MyPass
...t; auto &RI = getAnalysis<RegionInfoPass>().getRegionInfo(); > auto &AA = getAnalysis<AAResultsWrapperPass>().getAAResults(); > auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE(); > auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree(); > Result2.reset(new ScopDetection(F, DT, SE, LI, RI, AA)); > > > > auto &SD2 = getAnalysis<polly::ScopDetectionWrapperPass>().getSD(); > > > > auto &SE2 = getAnalysis<ScalarEvolutionWrapperPass>().getSE(); > auto &LI2 = getAnalysis<...
2017 Aug 07
2
vrp
...lvm-dev <llvm-dev at lists.llvm.org> wrote: > I am trying to print it like this (maybe here is smth wrong?) > > > LazyValueInfo &LV = getAnalysis<LazyValueInfoWrapperPass>().getLVI(); > DominatorTree &DT = > getAnalysis<DominatorTreeWrapperPass>().getDomTree(); > LV.printLVI(F, DT, llvm::outs()); The value analysis in llvm is lazy (hence, LVI), so you're trying to print an empty cache, I guess. > for (BasicBlock &BB : F) { > for (Instruction &I : BB) { > if (Value* v = dyn_cast<Value>(&I)) >...
2018 Jan 29
1
Polly Dependency Analysis in MyPass
...().getLoopInfo(); auto &RI = getAnalysis<RegionInfoPass>().getRegionInfo(); auto &AA = getAnalysis<AAResultsWrapperPass>().getAAResults(); auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE(); auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree(); Result2.reset(new ScopDetection(F, DT, SE, LI, RI, AA)); auto &SD2 = getAnalysis<polly::ScopDetectionWrapperPass>().getSD(); auto &SE2 = getAnalysis<ScalarEvolutionWrapperPass>().getSE(); auto &LI2 = getAnalysis<LoopInfoWrapperPass>().getLoopInfo(); auto &...
2017 Aug 07
2
vrp
...I am trying to print it like this (maybe here is smth wrong?) >> > >> > >> > LazyValueInfo &LV = getAnalysis<LazyValueInfoWrapp >> erPass>().getLVI(); >> > DominatorTree &DT = >> > getAnalysis<DominatorTreeWrapperPass>().getDomTree(); >> > LV.printLVI(F, DT, llvm::outs()); >> >> The value analysis in llvm is lazy (hence, LVI), so you're trying to >> print an empty cache, I guess. >> >> > for (BasicBlock &BB : F) { >> > for (Instruction &I : BB) { &gt...
2017 Aug 07
2
vrp
Hello, I am trying to figure out, what vrp propagation does in llvm. I tried this program: #include <stdio.h> int main() { int s = 0; int j = 0; for (int i = 0; i < 100; i++) { j = j+i+1; s+=j; } return (s+j); } And got this under optimized version ( I don't want everything to be eliminated) define i32 @main()
2019 Jan 11
3
LLVM Pass to count reachable BB
Hello, I have code containing conditions and loops. Hence some BB execution are determined at run time depending on condition. Now I want to count only those BB that are always executed irrespective of condition result means reachable. and their execution is evident at compile time. How to do this? Please help Thank You Regards -------------- next part -------------- An HTML attachment was
2018 Jan 29
0
Polly Dependency Analysis in MyPass
How do you compile the code? Within the Polly subdirectory using CMake? How do you run your pass. Using "opt -mypass inputfile.ll"? Michael 2018-01-28 9:30 GMT-06:00 hameeza ahmed via llvm-dev <llvm-dev at lists.llvm.org>: > Hello, > > I need to analyze dependencies in my llvm ir by using polly. i created a new > pass called mypass there i added polly dependency
2015 Jul 02
2
[LLVMdev] input and output values from a loop
Hi there, I want to get input and output values from a loop. For this I am doing something like this: DominatorTree &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree(); CodeExtractor Extractor(DT, *L); Extractor.findInputsOutputs(inputs, outputs); When I print the input and output values for the following test code: void aFunc(void) { int sum=0; puts("aFunc()"); for (int i = 0; i < 10; i++) { int fact=i*2; su...
2019 Oct 30
2
How to make ScalarEvolution recompute SCEV values?
Hello all, I’m pretty new to LLVM. I'm writing a pass for loop optimization. I clone and rearrange loops, setting the cloned loop as the original loop’s parent. This can be done multiple times, until there is no more work to do. The trouble is, after the first time I do this, the cloned loop's SCEVs become unknown types when they should be AddRecExpr. If I re-run the whole pass on the