Displaying 20 results from an estimated 500 matches similar to: "LoopIdiomRegognize vs Preserved"
2016 Feb 09
2
LoopIdiomRegognize vs Preserved
Hi Haicheng,
Originally I ran into this on our out-of-tree target but I managed to
reproduce the crash on X86 as well now:
build-all/bin/opt -S -sroa -loop-rotate -loop-deletion -licm
-loop-idiom ../llvm/bugpoint-reduced-simplified.i8+.ll
gives:
While deleting: void %
An asserting value handle still pointed to this value!
UNREACHABLE executed at ../lib/IR/Value.cpp:696!
0 opt
2016 Feb 10
2
LoopIdiomRegognize vs Preserved
Hi,
On 02/10/2016 01:23 AM, haicheng at codeaurora.org wrote:
> Thank you, Mikael. I can reproduce what you saw and am looking into it.
Great!
> Just curious, why do you run loop-deletion before licm and loop-idiom?
As part of our internal testing we use Csmith to generate C-programs and
then we run the compiler with random generated compiler flags on that
input.
This bug was
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)
{
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
2018 Jan 28
0
Polly Dependency Analysis in MyPass
I have modified the code as follows; now i am using both scopdetection and
scopinformation before dependency check but i think link is missing...
virtual bool runOnFunction(Function &F)
{
std::unique_ptr<ScopInfo> Result;
std::unique_ptr<ScopDetection> Result2;
//polly::ScopDetection pl;
auto &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
auto
2018 Jan 28
1
Polly Dependency Analysis in MyPass
HI Hameeza,
what do mean by link is still missing?
Currently it is not possible to use polyhedral information from within
in-tree LLVM passes. This is because Polly is not currently part of the
LLVM tree, and is only linked into the tools as an external project. I.e.,
you can't depend on Polly passes in an in-tree pass. What you can do,
though, is use Polly from an out-of-tree context. If
2017 Jan 26
3
AAResultsWrapperPass assertion in 3.9
Thanks Eli.
Ashutosh once asked the same question, and later said:
'createLegacyPMAAResults' can help here.
But how should this be used to solve the assertion problem?
On Jan 25, 2017, 4:10 PM -0800, Friedman, Eli <efriedma at codeaurora.org>, wrote:
> On 1/25/2017 4:00 PM, Welson Sun via llvm-dev wrote:
> > Hi,
> >
> > Migrating from 3.5 to 3.9. There is a
2018 Apr 23
2
Conditional analysis before inliner
Thanks for the answer Eli.
I think I was a little too vague in my question. The program has the
following structure:
void foo() {
bar();
}
void bar() {
for (..) {
__builtin_compute()
}
}
We would like to use scalar evolution + loopinfowrapperpass inside
instcombine only if __builtin_compute is present. instcombine can convert
the loop into a single builtin ie.
void bar() {
2018 Apr 20
0
Conditional analysis before inliner
On 4/19/2018 1:57 PM, Anom LLVM via llvm-dev wrote:
> Hi,
>
> I have pass phase ordering question.
>
> I am interested in performing a transformation that matches several
> LLVM IR instructions and converts them to a single builtin. This sort
> of transformation must occur prior to inlining because inlining needs
> to analyze cost of the builtin. However, the LLVM IR
2018 Apr 23
0
Conditional analysis before inliner
I probably wouldn't worry about the cost of LoopInfo; it's relatively
cheap to compute. But if you're really concerned, you can run your pass
after a pass which preserves LoopInfo (so it's free because it was
already computed). Or you can stick your code into an existing pass
which requires LoopInfo anyway, like LoopIdiomRecognize.
-Eli
On 4/23/2018 3:37 PM, Anom LLVM
2017 Jul 10
2
Problems with registering of ModulePass (with Dependencies)
Hello,
I have created a ModulePass, that now needs LoopInfo information.
The ModulePass registration is taken from [1]. I use clang to directly invoke
it (This is also a hard requirement, because I need the fancy output of clang
warnings/remarks).
The problem is, that the dependency to the LoopInfoWrapperPass does not seem
to work. The error is:
--- snip ---
clang-4.0:
2015 Sep 23
4
Find loops in LLVM bytecode
Hi,
I want to find simple loops in LLVM bytecode, and extract the basic
information of the loop.
For example:
for (i=0; i<1000; i++)
sum += i;
I want to extract the bound [0, 1000), the loop variable "i" and the
loop body (sum += i).
What should I do?
I read the LLVM API document, and find some useful classes like "Loop",
"LoopInfo".
But I do
2017 Jan 26
2
AAResultsWrapperPass assertion in 3.9
Hi,
Migrating from 3.5 to 3.9. There is a module pass that uses alias analysis
started breaking at runtime:
llvm/lnx64/llvm/include/llvm/PassAnalysisSupport.h:236: AnalysisType&
llvm::Pass::getAnalysisID(llvm::AnalysisID) const [with AnalysisType =
llvm::AAResultsWrapperPass; llvm::AnalysisID = const void*]: Assertion
`ResultPass && "getAnalysis*() called on an analysis that was
2018 Feb 07
2
Question about using LoopAccessLegacyAnalysis
Hi LLVM community,
I am writing a custom pass for analyzing the dependence information for the memory access within a loop. I found “LoopAccessLegacyAnalysis” class useful, however I m not able to obtain information from that pass. Here is what I did to get the information:
// require pass
virtual void getAnalysisUsage(AnalysisUsage &AU) const
{
2016 Mar 21
2
[Inliner] Loop info in the inliner
Hi,It seems inliner does not take into account if a call is inside a loop. I'm trying to figure out if loop-info can be made available to the inliner.
When I try to add LoopInfoWrapperPass to Inliner.cpp,
diff --git a/llvm/lib/Transforms/IPO/Inliner.cpp b/llvm/lib/Transforms/IPO/Inliner.cppindex 568707d..cb51ea8 100644--- a/llvm/lib/Transforms/IPO/Inliner.cpp+++
2019 Jan 31
4
Confusing ERROR with LoopAccessLegacyAnalysis: Pass 'Unnamed pass: implement Pass::getPassName()' is not initialized.
Dear all,
I write a new LoopPass which wants to use passes including LoopInfoWrapperPass, ScalarEvolutionWrapperPass and LoopAccessLegacyAnalysis.
Therefore, I implement the following code based on LLVM 9.0.0:
=====================================================================
bool LoopInformationCollect::runOnLoop(Loop *L, LPPassManager &)
{
auto &SE =
2018 Jan 29
1
Polly Dependency Analysis in MyPass
Thank You.
Actually i pass polly canonaclize IR to my new created polly pass called
"mypass". Mypass should first detect scops then find depedndencies as the
mechanism conventional approach.
Now i know how to write llvm pass here i am writing pass as loadable module
first afterwards i will integrate it with opt in the end.
I tried writing following code. Could you please help me on
2018 Feb 08
0
Question about using LoopAccessLegacyAnalysis
Have you check `LoopAccessLegacyAnalysis::runOnFunction` ran as you expect?
Besides, I am not sure if `LoopAccessLegacyAnalysis::runOnFunction` does
anything useful, have you check that, too?
2018-02-08 1:49 GMT+08:00 Kewen Meng via llvm-dev <llvm-dev at lists.llvm.org>:
> Hi LLVM community,
>
> I am writing a custom pass for analyzing the dependence information for
> the
2016 Mar 22
0
[Inliner] Loop info in the inliner
FYI - There is currently an architectural issue which prevents the SCC
pass manager (which runs the inliner) from relying on Function or Loop
analysis passes. This is the primary motivation of the pass manager
rewrite that Chandler Carruth has been working on for the last two
years. He's getting relatively close to that project being done, but
until then you are going to be effectively
2014 Mar 11
4
[LLVMdev] Memcpy / Memset for address spaces >= 256
Hi,
SelectionDAGBuilder doesn't know how to lower a Memcpy and Memset if one
of the pointer operands have an address space >= 256. This is
understandable since the libc's memcpy / memset don't work for these
address spaces. However, both Clang (when copying a struct) and some
optimization passes (LoopIdiomRecognize, MemCpyOpt) can emit memcpy /
memset for these address