Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] MachineDominatorTree"
2010 Mar 09
1
[LLVMdev] Find all backedges of CFG by MachineDominatorTree. please look at my jpg.
Hi:
I want to do some optimization on MachineLoop.
So I want to get MachineLoopInfo from MachineFunction.
I reference MachineLICM.cpp.
So I try to write a pass in Target/mytarget directory.
I find there is Error.
llvm/include/llvm/PassAnalysisSupport.h:198: AnalysisType& llvm::Pass::getAnalysisID(const llvm::PassInfo*) const [with AnalysisType = llvm::MachineLoopInfo]: Assertion
2010 Jan 25
2
[LLVMdev] Find all backedges of CFG by MachineDominatorTree. please look at my jpg.
Hi:
I hope to cut all backedges of MachineFunction CFG, then topological sort MachineBasicBlocks.
1. MachineDominatorTree *domintree = new MachineDominatorTree();
domintree->runOnMachineFunction(mf);
2. Then travel mf one by one.
When domintree->dominates(next,current) is true, there is a backedge from current node to next node. move this backedge form CFG.
But I find A LOOP in
2010 Jan 25
0
[LLVMdev] Find all backedges of CFG by MachineDominatorTree. please look at my jpg.
2010/1/25 任坤 <hbrenkun at yahoo.cn>:
> Hi:
>
> I hope to cut all backedges of MachineFunction CFG, then topological sort MachineBasicBlocks.
>
> 1. MachineDominatorTree *domintree = new MachineDominatorTree();
> domintree->runOnMachineFunction(mf);
>
> 2. Then travel mf one by one.
> When domintree->dominates(next,current) is true, there is a backedge
2010 Mar 09
1
[LLVMdev] Find all backedges of CFG by MachineDominatorTree. please look at my jpg.
Thank you, Nick.
Yes, I have add getAnalysisUsage.
As I know, some CFG is irreducible.
At this time, Dominator Tree can not find
some backedge. Is it means some MachineLoop is
not be found?
dominatorTree.jpg is a previous exmaple.
best regards!
renkun
--- 10年3月9日,周二, Nick Lewycky <nicholas at mxc.ca> 写道:
> 发件人: Nick Lewycky <nicholas at mxc.ca>
> 主题: Re: [LLVMdev] Find
2010 Jan 25
0
[LLVMdev] About MachineDominatorTree Pass.
Hi:
I hope to cut all backedges of MachineFunction CFG, then topological sort MachineBasicBlocks.
1. MachineDominatorTree *domintree = new MachineDominatorTree();
domintree->runOnMachineFunction(mf);
2. Then travel mf one by one.
When domintree->dominates(next,current) is true, there is a backedge from current node to next node. move this backedge form CFG.
But I find A LOOP in
2017 Apr 26
2
Collectively dominance
Hi Daniel,
I mean "*As a set*, B + C dominate D".
On Tue, Apr 25, 2017 at 5:42 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
> When you say collectively, you mean "would dominate it if considered a
> single block together?
>
> IE
>
> A
> / \
> B C
> \ /
> D
>
> As a set, B + C dominate D.
>
> The set you are
2007 Dec 07
2
[LLVMdev] MachineLoopInfo Analysis Not Done
I'm trying to create the Machine LICM pass and I have this defined:
class VISIBILITY_HIDDEN MachineLICM : public MachineFunctionPass {
...
public:
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesCFG();
AU.addRequired<MachineLoopInfo>();
AU.addRequired<MachineDominatorTree>();
}
...
};
But when I go to use it:
2017 Apr 26
2
Collectively dominance
On Tue, Apr 25, 2017 at 6:32 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
>
>
> On Tue, Apr 25, 2017 at 6:17 PM, Hongbin Zheng <etherzhhb at gmail.com>
> wrote:
>
>> Hi Daniel,
>>
>> I mean "*As a set*, B + C dominate D".
>>
>> On Tue, Apr 25, 2017 at 5:42 PM, Daniel Berlin <dberlin at dberlin.org>
>> wrote:
2013 Apr 25
0
[LLVMdev] How to know if an instruction is "usable"
On 4/25/2013 12:06 PM, Giacomo Tagliabue wrote:
> Thanks,
> So, how do I check if a block dominates another one?
In IR use analysis DominatorTree from
"include/llvm/Analysis/Dominators.h". For machine instructions, use
MachineDominatorTree
from "include/llvm/CodeGen/MachineDominators.h".
Both of them implement function "dominates" that takes two blocks
2017 Apr 26
2
Collectively dominance
Hi Daniel,
Thanks a lot for all these explanation, I will try it out.
Hongbin
On Tue, Apr 25, 2017 at 7:04 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
>
>
> On Tue, Apr 25, 2017 at 6:42 PM, Hongbin Zheng <etherzhhb at gmail.com>
> wrote:
>
>>
>>
>> On Tue, Apr 25, 2017 at 6:32 PM, Daniel Berlin <dberlin at dberlin.org>
>> wrote:
2017 Apr 26
1
Collectively dominance
Like I said, i'm nearly positive there is a much faster way, as the sets
are mostly shared except in the cyclic case, and in all reducible cyclic
cases, removal of back-arcs does not affect dominance
(because in any reducible flowgraph, v dominates u whenever u,v is a
back-arc)
On Tue, Apr 25, 2017 at 7:38 PM, Hongbin Zheng <etherzhhb at gmail.com> wrote:
> Hi Daniel,
>
>
2012 Mar 29
2
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
Hi,
I'm trying to use the VLIWPacketizerList to schedule instructions for
the R600 target, and I'm running into this assertion failure:
ScheduleDAGInstrs.cpp:558: Cannot schedule terminators or labels!
I think I might not be using the VLIWPacketizerList class correctly.
I've attached my code to this email. Can anyone spot what I'm doing
wrong?
Also, I had to add a LiveIntervals
2013 Apr 25
2
[LLVMdev] How to know if an instruction is "usable"
Thanks,
So, how do I check if a block dominates another one?
On 25 April 2013 11:59, Krzysztof Parzyszek <kparzysz at codeaurora.org> wrote:
> On 4/25/2013 11:52 AM, Giacomo Tagliabue wrote:
>
>> Is there an easy way to know if, at a certain instruction, a certain
>> value is usable or not? i.e., I am sure that if i use that value i don't
>> to get the error
2010 Jan 26
1
[LLVMdev] Find all backedges of CFG by MachineDominatorTree. please look at my jpg.
Hi, Dear Boissinot:
1. When I have irreducible CFG, I travel its nodes by DFS.
search backedge for every node. After I finish one node,
push it into a stack.
[0, 1, 2, M] <---push.
[0, 1, 2, M,...N] <---push.
When resolving node M, find a edge from node N to node M,
N is not in stack(M < N), It is a backedge.
N is in stack(M > N), It is NOT a backedge.
2012 Jan 07
1
[LLVMdev] dominance frontiers
On Sat, Jan 7, 2012 at 12:14 AM, Cameron Zwarich <zwarich at apple.com> wrote:
> On Jan 6, 2012, at 8:27 PM, Daniel Berlin wrote:
>
> Note: GCC takes exactly the same approach as LLVM here, for exactly
> the reason chris specifies.
> In fact, until we started local SSA updating (which is now many years
> ago, but ...), dominance frontier calculation for ssa updating was in
2013 Sep 06
5
[LLVMdev] Extracting libmachine from libcodegen (bug 1121)
Hi,
One of the long-standing code clean-up bugs in Bugzilla is to extract
the Machine* code from the CodeGen library into a separate one, on
which CodeGen depends (
http://llvm.org/bugs/show_bug.cgi?id=1121).
I'd like to start working on this. The general approach I'm planning to take is:
1. Identify which code to move.
2. Eliminate all dependencies that the Machine code has on the
2006 Oct 18
1
LDAP Username Change
I have a virtual setup using LDAP where the a user has an email address
at 2 domain names. The want the mail kept separate but want to use the
same password. I use the mail attribute and insert both email
addresses. This works perfectly with deliver but opens the wrong Inbox
when I IMAP. Is there a way to disable this in the conf file?
host dovecot: auth(default): auth(jeff at
2011 Dec 09
2
[LLVMdev] Adding option to LLVM opt to disable a specific pass from command line
David,
I think my explanation is not clear, my front-end did NOTt generate
'llvm.memcpy' it generate LL code that after use of LLVM 'opt' get
transformed by 'loop-idom' pass into an 'llvm.memcpy' for an overlapping
loop:
static void
t0(int n)
{
int i;
for (i=0; i<n; i++)
result[i+1] = result[i];
}
Then 'llc' expanded llvm.memcpy into a
2009 Dec 04
0
[LLVMdev] hi, Hi, (Preccessors' Number) < MachineBasicBlock's Number < (Successors's Number), Is it really?
On Dec 3, 2009, at 9:52 PM, 任坤 wrote:
> I am travelling CFG with MachineFunction. So I want to sure it.
> (Preccessors' Number) < MachineBasicBlock's Number < (Successors's Number), Is it really?
If the CFG contains loops, how could this be possible?
Anyway, no you can't use MBB numbers for that. Perhaps you need the MachineDominatorTree analysis?
Regards,
/jakob
2013 Sep 11
0
[LLVMdev] Extracting libmachine from libcodegen (bug 1121)
On Sep 5, 2013, at 5:15 PM, Ken Dyck <kd at kendyck.com> wrote:
> Hi,
>
> One of the long-standing code clean-up bugs in Bugzilla is to extract
> the Machine* code from the CodeGen library into a separate one, on
> which CodeGen depends (
> http://llvm.org/bugs/show_bug.cgi?id=1121).
>
> I'd like to start working on this. The general approach I'm planning