Displaying 20 results from an estimated 1000 matches similar to: "PostRAScheduler"
2013 Feb 21
2
[LLVMdev] hazard scheduling nodes
Hi,
I am trying to add Hazard scheduling nodes after buildSchedGraph(), with a scheduler derived from ScheduleDAGInstrs. I get weird errors, so I wonder what I am doing wrong?
What I am doing right now is:
I have a created MI with opcode HAZARD that does not have parent, and I greate a SUnit(HazardMI). I use this one HazardMI for all hazard nodes.
I remove all edges using removePred.
I insert
2013 Mar 12
1
[LLVMdev] hazard scheduling nodes
Hi Andy,
The thing is that I was trying to build a sched graph in other places than these two standard scheduling passes. For instance, in pre-emit. I would like to reschedule a basic block on my vliw target just before assembly emission.
I tried to add SUnits for hazards in an experiment, but this gave very weird errors... even while allocating extra space in SUnits vector. For some function, I
2013 Mar 09
0
[LLVMdev] hazard scheduling nodes
On Feb 21, 2013, at 9:11 AM, Jonas Paulsson <jonas.paulsson at ericsson.com> wrote:
> Hi,
>
> I am trying to add Hazard scheduling nodes after buildSchedGraph(), with a scheduler derived from ScheduleDAGInstrs. I get weird errors, so I wonder what I am doing wrong?
>
> What I am doing right now is:
>
> I have a created MI with opcode HAZARD that does not have
2009 Jan 01
1
[LLVMdev] Win32 JIT issue + bug in ScheduleDAGSNodes.h?
Bill Wendling wrote:
> On Dec 31, 2008, at 5:57 AM, srs wrote
>> Bill Wendling wrote:
>>
>>> On Dec 30, 2008, at 4:51 PM, srs wrote:
>>>
>>>
>>>
>>>> 2. There seems to be an issue in ScheduleDAGSDNodes.h when in debug
>>>> mode. The problem is the evaluation of "&SUnits[0];" which
2010 Aug 08
2
[LLVMdev] Usage of pointers to elements of a std::vector that might be reallocated
Oh yes you're right, I missed that :) But the point still hold.
Amaury Pouly
2010/8/8 Eugene Toder <eltoder at gmail.com>
> > Not only this code does not compile with NDEBUG set
>
> I may be missing something, but why does it not compile with -DNDEBUG?
> assert() macro expands to noop when NDEBUG is set.
>
> Eugene
>
> On Sun, Aug 8, 2010 at 2:19 PM, Amaury
2008 Dec 31
0
[LLVMdev] Win32 JIT issue + bug in ScheduleDAGSNodes.h?
On Dec 31, 2008, at 5:57 AM, srs wrote:
> Bill Wendling wrote:
>> On Dec 30, 2008, at 4:51 PM, srs wrote:
>>
>>
>>> 2. There seems to be an issue in ScheduleDAGSDNodes.h when in debug
>>> mode. The problem is the evaluation of "&SUnits[0];" which
>>> ASSERT's in
>>> VC++'s vector[] implementation (when
2010 Aug 08
2
[LLVMdev] Usage of pointers to elements of a std::vector that might be reallocated
Hello,
I was trying to interface a custom backend instruction scheduler with llvm
code when I realize something terrible. The scheduling code builds a graph
made up of SUnit * nodes (see ScheduleDAG*.{cpp,h}). These SUnits nodes are
allocated via a std::vector< SUnit >.
This isn't a problem as long as the pointers are taken after the vector is
fully filled and the vector never changes
2008 Dec 31
4
[LLVMdev] Win32 JIT issue + bug in ScheduleDAGSNodes.h?
Hi all,
While testing my compiler on win32 in JIT mode, I ran into a couple of
issues:
1. I linked the compiler with the lib files resulting from the cmake
created VS.NET build. While everything built just fine, the
ExecutionEngine::create call always returned NULL. The fix was to also
link with JIT.obj (thanks aKor for pointing me in the right direction).
I would have thought that linking
2010 Aug 08
0
[LLVMdev] Usage of pointers to elements of a std::vector that might be reallocated
Right, later in the same file we have:
// Reserve entries in the vector for each of the SUnits we are creating. This
// ensure that reallocation of the vector won't happen, so SUnit*'s won't get
// invalidated.
// FIXME: Multiply by 2 because we may clone nodes during scheduling.
// This is a temporary workaround.
SUnits.reserve(NumNodes * 2);
So for some reason *2 is
2010 Aug 08
0
[LLVMdev] Usage of pointers to elements of a std::vector that might be reallocated
> Not only this code does not compile with NDEBUG set
I may be missing something, but why does it not compile with -DNDEBUG?
assert() macro expands to noop when NDEBUG is set.
Eugene
On Sun, Aug 8, 2010 at 2:19 PM, Amaury Pouly <amaury.pouly at gmail.com> wrote:
> Hello,
> I was trying to interface a custom backend instruction scheduler with llvm
> code when I realize
2008 Dec 31
2
[LLVMdev] Win32 JIT issue + bug in ScheduleDAGSNodes.h?
Bill Wendling wrote:
> On Dec 30, 2008, at 4:51 PM, srs wrote:
>
>
>> 2. There seems to be an issue in ScheduleDAGSDNodes.h when in debug
>> mode. The problem is the evaluation of "&SUnits[0];" which ASSERT's in
>> VC++'s vector[] implementation (when _HAS_ITERATOR_DEBUGGING is on).
>>
>> As a work-around, I commented out the debug
2007 May 02
1
[LLVMdev] Instruction Scheduling in LLVM
Hello,
I am working with the SelectionDAG/ScheduleDAG framework to implement a variation of the List scheduling Algorithm in LLVM.
I was trying to understand the existing List scheduler implementation in LLVM. I have a doubt about the SUnits structure which contain flagged nodes together. The instructions within a Sunit are scheduled as a single unit. My understanding is that the nodes in the
2012 Oct 17
1
[LLVMdev] MI DAG constructor indeterminism
Andy,
So if it is not a feature. then couple questions:
First, I also do not see an easy way to restructure work sets in this case
- so let's assume std::map is needed here. Then the way I understand it,
there are five objects that cause the indeterminism:
std::map<const Value *, SUnit *> AliasMemDefs, NonAliasMemDefs;
std::map<const Value *, std::vector<SUnit
2012 Oct 17
0
[LLVMdev] MI DAG constructor indeterminism
On Oct 16, 2012, at 1:43 PM, Sergei Larin <slarin at codeaurora.org> wrote:
>
> Andy,
>
> This is less of a question but rather a status quo verification…
>
> We currently have certain indeterminism in MI scheduler DAG construction – it is introduces by the use of std::map/std::set during edge traversal.
> Result – a random variation in SUnit edge order
2012 Apr 20
2
[LLVMdev] [RFC] Scheduler Rework
Hey Everyone,
I'd like to begin a project to rework the scheduler to address some
problems we've discovered on this end. The goal is to get a more
configurable/flexible scheduler while simplifying maintenance by
separating policy from implementation to get independent and
interchangeable parts.
This is going to be challenging because we are still stuck on LLVM 2.9.
We will be upgrading
2012 Apr 23
0
[LLVMdev] [RFC] Scheduler Rework
On Apr 20, 2012, at 10:31 AM, dag at cray.com wrote:
> I'd like to begin a project to rework the scheduler to address some
> problems we've discovered on this end. The goal is to get a more
> configurable/flexible scheduler while simplifying maintenance by
> separating policy from implementation to get independent and
> interchangeable parts.
>
> This is going to be
2012 Oct 16
2
[LLVMdev] MI DAG constructor indeterminism
Andy,
This is less of a question but rather a status quo verification.
We currently have certain indeterminism in MI scheduler DAG construction
- it is introduces by the use of std::map/std::set during edge traversal.
Result - a random variation in SUnit edge order (which will remain fixed
thereafter). Logically, it is the same DAG, but topologically it is a
slightly different one,
2017 Feb 11
2
Specify special cases of delay slots in the back end
Hello.
Hal, the problem I have is that it doesn't advance at the next available instruction
- it always gets the same store. This might be because I did not specify in a file like
[Target]Schedule.td the functional units, processor and instruction itineraries.
Regarding the Stalls argument to my method
[Target]DispatchGroupSBHazardRecognizer::getHazardType() I always get the
2013 Aug 20
2
[LLVMdev] PrescheduleNodesWithMultipleUses() causing failure in PickNodeToScheduleBottomUp() ???
Hi,
I have an assert firing due to PickNodeToScheduleBottomUp():
1. having a CallResource in use pushing an interference of current SUnit.
2. having no more SUnits in the AvailableQueue
3. The only interference being the SUnit that just failed due to a Call Resource.
4. An attempt to duplicate this node which has the 'Call Resource' as a physical register.
Thus the call
2012 Apr 24
2
[LLVMdev] [RFC] Scheduler Rework
Andrew Trick <atrick at apple.com> writes:
> We plan to move to the MachineScheduler by 3.2. The structure is:
How hard will this be to backport to 3.1? Has woprk on this started
yet?
> ScheduleDAG: Abstract DAG of SUnits and SDeps
> |
> v
> ScheduleDAGInstrs: Build the DAG from MachineInstrs, each SUnit tied to an MI
> Delimit the current