Displaying 18 results from an estimated 18 matches for "setroot".
Did you mean:
getroot
2009 Apr 06
2
[LLVMdev] debug stoppoint nodes with -fast option
...number debug information for PIC16 target.
PIC16 does not support dwarf format. It supports coff format. So I need
to custom handle the STOPPOINT nodes. Without -fast option the STOPPOINT
nodes are not created in dag because of the below check in
SelectionDAGBuild.cpp
if (Fast)
DAG.setRoot(DAG.getDbgStopPoint(getRoot(),
If I give -fast option then the Fast flag is true, but the dag doesn't
contain STOPPOINT nodes. If I have simple loads and stores in source
code, the dag doesn't contain them too. Why are these nodes not being
created?
Thanks
Vasudev
2014 Sep 01
3
[LLVMdev] understanding DAG: node creation
Hi,
I'm not sure. But in your lowered DAG the chain nodes are the first
operands for you custom nodes, however for the other nodes the chain is
the last operand. I seem to remember that during targetlowering the
chain is the first operand and then it seems to switch over after
ISelDAG, this confused me and may have something to do with the issue
that you are seeing. I really don't
2006 Dec 19
3
[LLVMdev] alias-aware scheduling
...) {
+ DependentMemOps.push_back(PendingMemOp);
+ } else {
+ IndependentMemOps.push_back(PendingMemOp);
+ }
+ }
+
+ if (DependentMemOps.empty())
+ return DAG.getRoot();
+
+ if (DependentMemOps.size() == 1) {
+ SDOperand Root = DependentMemOps[0];
+ DAG.setRoot(Root);
+ PendingLoads = IndependentMemOps;
+ return Root;
+ }
+
+ // Otherwise, we have to make a token factor node.
+ SDOperand Root = DAG.getNode(ISD::TokenFactor, MVT::Other,
+ &DependentMemOps[0], DependentMemOps.size());
+ PendingLoads...
2007 Nov 05
4
[LLVMdev] Two labels around one instruction in Codegen
...s what the
codegen of an InvokeInst does.
However, when generating native code, only BeginLabel is generated, and
it is generated after the instruction. I'm not familiar with DAGs in the
codegen library, so here are my 2-cents thoughts why:
1) BeginLabel and EndLabel are generated with:
DAG.setRoot(DAG.getNode(ISD::LABEL, MVT::Other, getRoot(),
DAG.getConstant({Begin|End}Label, MVT::i32)));
This seems to work with InvokeInst instructions, because the root of the
DAG is modified by the instruction. With instructions such as sdiv, the
root is not modified: the instr...
2006 Dec 20
1
[LLVMdev] alias-aware scheduling
...al, SDOperand Ptr,
const Value *SV, int SVOffset, bool isVolatile=false);
In SelectionDAGISel.cpp in SelectionDAGLowering::getLoadFrom and
SelectionDAGLowering::visitStore they are called like this:
L = DAG.getLoad(TLI.getValueType(Ty), Root, Ptr, SV, isVolatile);
DAG.setRoot(DAG.getStore(getRoot(), Src, Ptr, I.getOperand(1),
I.isVolatile()));
The isVolatile arguments are being passed to the SVOffset parameters.
Dan
--
Dan Gohman, Cray Inc. <djg at cray.com>
2009 Apr 08
2
[LLVMdev] debug stoppoint nodes with -fast option
...port dwarf format. It supports coff format. So I
>> need
>> to custom handle the STOPPOINT nodes. Without -fast option the
>> STOPPOINT
>> nodes are not created in dag because of the below check in
>> SelectionDAGBuild.cpp
>> if (Fast)
>> DAG.setRoot(DAG.getDbgStopPoint(getRoot(),
>> If I give -fast option then the Fast flag is true, but the dag doesn't
>> contain STOPPOINT nodes.
>>
>
> Right. Currently, the way we tell whether optimization was requested
> at the command line level is to look at -fast; -O...
2009 Apr 06
0
[LLVMdev] debug stoppoint nodes with -fast option
...get.
> PIC16 does not support dwarf format. It supports coff format. So I
> need
> to custom handle the STOPPOINT nodes. Without -fast option the
> STOPPOINT
> nodes are not created in dag because of the below check in
> SelectionDAGBuild.cpp
> if (Fast)
> DAG.setRoot(DAG.getDbgStopPoint(getRoot(),
> If I give -fast option then the Fast flag is true, but the dag doesn't
> contain STOPPOINT nodes.
Right. Currently, the way we tell whether optimization was requested
at the command line level is to look at -fast; -O0 == -fast.
The stoppoint nodes enfo...
2009 Apr 08
0
[LLVMdev] debug stoppoint nodes with -fast option
...supports coff format. So I
>>> need
>>> to custom handle the STOPPOINT nodes. Without -fast option the
>>> STOPPOINT
>>> nodes are not created in dag because of the below check in
>>> SelectionDAGBuild.cpp
>>> if (Fast)
>>> DAG.setRoot(DAG.getDbgStopPoint(getRoot(),
>>> If I give -fast option then the Fast flag is true, but the dag
>>> doesn't
>>> contain STOPPOINT nodes.
>>>
>>
>> Right. Currently, the way we tell whether optimization was requested
>> at the command li...
2007 Nov 06
0
[LLVMdev] Two labels around one instruction in Codegen
...acket them.
> However, when generating native code, only BeginLabel is generated, and
> it is generated after the instruction. I'm not familiar with DAGs in the
> codegen library, so here are my 2-cents thoughts why:
>
> 1) BeginLabel and EndLabel are generated with:
> DAG.setRoot(DAG.getNode(ISD::LABEL, MVT::Other, getRoot(),
> DAG.getConstant({Begin|End}Label, MVT::i32)));
>
> This seems to work with InvokeInst instructions, because the root of the
> DAG is modified by the instruction. With instructions such as sdiv, the
> root i...
2011 Aug 25
0
[LLVMdev] [RFC] Splitting init.trampoline into init.trampoline and adjust.trampoline
...ue(F);
>
> - Res = DAG.getNode(ISD::TRAMPOLINE, dl,
> - DAG.getVTList(TLI.getPointerTy(), MVT::Other),
> - Ops, 6);
> + Res = DAG.getNode(ISD::INIT_TRAMPOLINE, dl, MVT::Other, Ops, 6);
>
> - setValue(&I, Res);
> - DAG.setRoot(Res.getValue(1));
> + DAG.setRoot(Res);
> + return 0;
> + }
> + case Intrinsic::adjust_trampoline: {
> + setValue(&I, DAG.getNode(ISD::ADJUST_TRAMPOLINE, dl,
> + TLI.getPointerTy(),
> + getValue(I.getArgOper...
2011 Aug 23
2
[LLVMdev] [RFC] Splitting init.trampoline into init.trampoline and adjust.trampoline
Hi!
Attached set of patches splits llvm.init.trampoline into an "init"
phase and an "adjust" phase, as discussed on the "Go on dragonegg"
thread.
Thanks!
--
Sanjoy Das
http://playingwithpointers.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Split-intrinsics-and-DAG-nodes.patch
Type: text/x-diff
Size: 8808 bytes
Desc:
2007 Nov 06
1
[LLVMdev] Two labels around one instruction in Codegen
...owever, when generating native code, only BeginLabel is generated, and
>> it is generated after the instruction. I'm not familiar with DAGs in the
>> codegen library, so here are my 2-cents thoughts why:
>>
>> 1) BeginLabel and EndLabel are generated with:
>> DAG.setRoot(DAG.getNode(ISD::LABEL, MVT::Other, getRoot(),
>> DAG.getConstant({Begin|End}Label, MVT::i32)));
>>
>> This seems to work with InvokeInst instructions, because the root of the
>> DAG is modified by the instruction. With instructions such as sdiv,...
2007 Nov 07
0
[LLVMdev] Two labels around one instruction in Codegen
...> However, when generating native code, only BeginLabel is generated,
> and
> it is generated after the instruction. I'm not familiar with DAGs
> in the
> codegen library, so here are my 2-cents thoughts why:
>
> 1) BeginLabel and EndLabel are generated with:
> DAG.setRoot(DAG.getNode(ISD::LABEL, MVT::Other, getRoot(),
> DAG.getConstant({Begin|End}Label,
> MVT::i32)));
>
> This seems to work with InvokeInst instructions, because the root
> of the
> DAG is modified by the instruction. With instructions such as sdiv,...
2006 Dec 19
0
[LLVMdev] alias-aware scheduling
On Dec 19, 2006, at 12:13 PM, Dan Gohman wrote:
> Hello,
>
> I did a little experiment modifying LLVM to be able to use alias-
> analysis
> information in scheduling so that independent memory operations may be
> reordered.
I am not sure if it is a good idea to do this at scheduling time.
LLVM explicitly models control flows dependencies as chain operands.
This eliminated
2009 Apr 18
1
[LLVMdev] debug stoppoint nodes with -fast option
...gt;>>> need
>>>> to custom handle the STOPPOINT nodes. Without -fast option the
>>>> STOPPOINT
>>>> nodes are not created in dag because of the below check in
>>>> SelectionDAGBuild.cpp
>>>> if (Fast)
>>>> DAG.setRoot(DAG.getDbgStopPoint(getRoot(),
>>>> If I give -fast option then the Fast flag is true, but the dag
>>>> doesn't
>>>> contain STOPPOINT nodes.
>>>>
>>>>
>>> Right. Currently, the way we tell whether optimization was...
2009 May 21
0
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On Wed, May 20, 2009 at 4:55 PM, Dan Gohman <gohman at apple.com> wrote:
> Can you explain why you chose the approach of using a new pass?
> I pictured removing LegalizeDAG's type legalization code would
> mostly consist of finding all the places that use TLI.getTypeAction
> and just deleting code for handling its Expand and Promote. Are you
> anticipating something more
2009 May 20
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On May 20, 2009, at 1:34 PM, Eli Friedman wrote:
> On Wed, May 20, 2009 at 1:19 PM, Eli Friedman
> <eli.friedman at gmail.com> wrote:
>
>> Per subject, this patch adding an additional pass to handle vector
>>
>> operations; the idea is that this allows removing the code from
>>
>> LegalizeDAG that handles illegal types, which should be a significant
2009 May 21
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
...end()); I != next(E); ++I)
- HandleOp(SDValue(I, 0));
+ LegalizeOp(SDValue(I, 0));
// Finally, it's possible the root changed. Get the new root.
SDValue OldRoot = DAG.getRoot();
assert(LegalizedNodes.count(OldRoot) && "Root didn't get legalized?");
DAG.setRoot(LegalizedNodes[OldRoot]);
- ExpandedNodes.clear();
LegalizedNodes.clear();
- PromotedNodes.clear();
- SplitNodes.clear();
- ScalarizedNodes.clear();
- WidenNodes.clear();
// Remove dead nodes now.
DAG.RemoveDeadNodes();
@@ -458,17 +306,7 @@
// If the first result of this node...