Displaying 12 results from an estimated 12 matches for "scalarevolutionaliasanalysis".
2013 Oct 31
3
[LLVMdev] LICM and SCEV AA?
...see several possible solutions:
1. Add yet-another hack to BasicAA to catch this case.
2. Let LICM use SE directly. Instead of bailing out on hoisting a loop-invariant value in an alias set with non-invariant values, use SE to check independence with the other values in the alias set.
3. Use ScalarEvolutionAliasAnalysis; scheduling SCEV AA prior to running LICM fixes this problem.
Using #3 seems like the simplest, and most natural, way to fix this issue. I recall someone tell me (maybe at the developers' meeting) that SCEV AA was 'fundamentally flawed', and now I'm wondering what was meant by that...
2012 Oct 19
2
[LLVMdev] Choosing an alias analyzer
...TypeBasedAliasAnalysis before BasicAliasAnalysis so that
// BasicAliasAnalysis wins if they disagree. This is intended to help
// support "obvious" type-punning idioms.
PM.add(createTypeBasedAliasAnalysisPass());
PM.add(createBasicAliasAnalysisPass());
}
------
My goal is to use ScalarEvolutionAliasAnalysis in MemoryDependenceAnalysis.
When I do, getPassName in MemoryDependenceAnalysis (by stepping into
getAnalysisUsage), I get
$39 = 0x399f778 "Basic Alias Analysis (stateless AA impl)"
To switch to ScalarEvolutionAnalysis, I changed
lib/Transforms/IPO/PassManagerBuilder.cpp: addInitialAli...
2019 Jun 11
3
[RFC][SCEV] Behavior of AddRec in CompareSCEVComplexity
...mit-llvm -S ptr_test.c -o ptr_test.O1.ll`
Crashed Command
`opt -S -disable-output -basicaa -scev-aa -aa-eval -print-no-aliases ptr_test.O1.ll`
The core dump message is also in the attachments.
Investigations
1. SCEV-AA try to ‘minus' the SCEV expressions of the given two pointers(lib/Analysis/ScalarEvolutionAliasAnalysis.cpp:64)
2. ScalarEvolution::getMinusSCEV will boil down into ScalarEvolution::getAddExpr. On line 2383 of lib/Analysis/ScalarEvolution.cpp, GroupByComplexity is invoked.
3. CompareSCEVComplexity is eventually called to give a partial order between two SCEV expression.
4. If there are two SCEVAddExp...
2013 Nov 02
0
[LLVMdev] LICM and SCEV AA?
...ions:
>
> 1. Add yet-another hack to BasicAA to catch this case.
>
> 2. Let LICM use SE directly. Instead of bailing out on hoisting a loop-invariant value in an alias set with non-invariant values, use SE to check independence with the other values in the alias set.
>
> 3. Use ScalarEvolutionAliasAnalysis; scheduling SCEV AA prior to running LICM fixes this problem.
>
> Using #3 seems like the simplest, and most natural, way to fix this issue. I recall someone tell me (maybe at the developers' meeting) that SCEV AA was 'fundamentally flawed', and now I'm wondering what was mea...
2013 Nov 02
1
[LLVMdev] LICM and SCEV AA?
...1. Add yet-another hack to BasicAA to catch this case.
>>
>> 2. Let LICM use SE directly. Instead of bailing out on hoisting a loop-invariant value in an alias set with non-invariant values, use SE to check independence with the other values in the alias set.
>>
>> 3. Use ScalarEvolutionAliasAnalysis; scheduling SCEV AA prior to running LICM fixes this problem.
>>
>> Using #3 seems like the simplest, and most natural, way to fix this issue. I recall someone tell me (maybe at the developers' meeting) that SCEV AA was 'fundamentally flawed', and now I'm wondering what...
2014 Aug 13
2
[LLVMdev] Alias Analysis Semantics
...do not change, but that "a and b" are pointer equal
> always.
>
>
> What I describe is how, AFAICT, it is implemented in all of the alias
> passes.
> For example, SCEVAA, which actually computes the recurrences for these
> loop expressions, has this:
> // This is ScalarEvolutionAliasAnalysis. Get the SCEVs!
> const SCEV *AS = SE->getSCEV(const_cast<Value *>(LocA.Ptr));
> const SCEV *BS = SE->getSCEV(const_cast<Value *>(LocB.Ptr));
>
> // If they evaluate to the same expression, it's a MustAlias.
> if (AS == BS) return MustAlias;
>
>...
2019 Jun 12
2
[RFC][SCEV] Behavior of AddRec in CompareSCEVComplexity
...> > `opt -S -disable-output -basicaa -scev-aa -aa-eval -print-no-aliases
> ptr_test.O1.ll`
> > The core dump message is also in the attachments.
> >
> > Investigations
> > 1. SCEV-AA try to ‘minus' the SCEV expressions of the given two
> pointers(lib/Analysis/ScalarEvolutionAliasAnalysis.cpp:64)
> > 2. ScalarEvolution::getMinusSCEV will boil down into
> ScalarEvolution::getAddExpr. On line 2383 of
> lib/Analysis/ScalarEvolution.cpp, GroupByComplexity is invoked.
> > 3. CompareSCEVComplexity is eventually called to give a partial order
> between two SCEV express...
2014 Aug 13
2
[LLVMdev] Alias Analysis Semantics
Hello all,
I've read the documentation on alias analysis, and I think I understand it
literally, but I just want to be sure, because it seems a bit strange.
As it says on this web page <http://llvm.org/docs/AliasAnalysis.html>,
The MayAlias response is used whenever the two pointers might refer to the
> same object.
>
> The PartialAlias response is used when the two memory
2012 Oct 20
0
[LLVMdev] Choosing an alias analyzer
...alysis so that
> // BasicAliasAnalysis wins if they disagree. This is intended to help
> // support "obvious" type-punning idioms.
> PM.add(createTypeBasedAliasAnalysisPass());
> PM.add(createBasicAliasAnalysisPass());
> }
> ------
>
> My goal is to use ScalarEvolutionAliasAnalysis in MemoryDependenceAnalysis.
> When I do, getPassName in MemoryDependenceAnalysis (by stepping into
> getAnalysisUsage), I get
> $39 = 0x399f778 "Basic Alias Analysis (stateless AA impl)"
>
> To switch to ScalarEvolutionAnalysis, I changed
> lib/Transforms/IPO/PassManag...
2013 Nov 02
2
[LLVMdev] LICM and SCEV AA?
...A to catch this case.
> >
> > 2. Let LICM use SE directly. Instead of bailing out on hoisting a
> > loop-invariant value in an alias set with non-invariant values,
> > use SE to check independence with the other values in the alias
> > set.
> >
> > 3. Use ScalarEvolutionAliasAnalysis; scheduling SCEV AA prior to
> > running LICM fixes this problem.
> >
> > Using #3 seems like the simplest, and most natural, way to fix this
> > issue. I recall someone tell me (maybe at the developers' meeting)
> > that SCEV AA was 'fundamentally flawed'...
2014 Aug 14
2
[LLVMdev] Alias Analysis Semantics
...gt; always.
> >>
> >>
> >> What I describe is how, AFAICT, it is implemented in all of the alias
> >> passes.
> >> For example, SCEVAA, which actually computes the recurrences for these
> >> loop expressions, has this:
> >> // This is ScalarEvolutionAliasAnalysis. Get the SCEVs!
> >> const SCEV *AS = SE->getSCEV(const_cast<Value *>(LocA.Ptr));
> >> const SCEV *BS = SE->getSCEV(const_cast<Value *>(LocB.Ptr));
> >>
> >> // If they evaluate to the same expression, it's a MustAlias.
> >>...
2015 Jul 29
1
[LLVMdev] Error when i am using command make -j4 command in cygwin to compile safecode
...ease+Asserts build
llvm[3]: Compiling X86ISelDAGToDAG.cpp for Release+Asserts build
llvm[3]: Compiling DeadStoreElimination.cpp for Release+Asserts build
llvm[3]: Compiling EarlyCSE.cpp for Release+Asserts build
llvm[3]: Compiling SelectionDAGPrinter.cpp for Release+Asserts build
llvm[2]: Compiling ScalarEvolutionAliasAnalysis.cpp for Release+Asserts build
llvm[3]: Compiling FlattenCFGPass.cpp for Release+Asserts build
llvm[3]: Compiling StatepointLowering.cpp for Release+Asserts build
llvm[2]: Compiling ScalarEvolutionExpander.cpp for Release+Asserts build
llvm[3]: Compiling X86ISelLowering.cpp for Release+Asserts build...