Displaying 5 results from an estimated 5 matches for "argsfree".
Did you mean:
argsfile
2010 Jun 09
1
[LLVMdev] Always unfold memory operand
...scheduled.
I've attached a PDF of the DAG before instruction selection
(-view-isel-dags), and after instruction select (-view-sched-dags).
Notice how the flag/chain relationships between MOV64rm and CALL64r make it
impossible to schedule.
Here's the code being compiled:
define ccc void @ArgsFree() nounwind {
entry:
%0 = load void (i8*)** undef, align 4
call ccc void %0(i8* undef) nounwind
unreachable
}
Is this a bug in LLVM, or is there something else I need to do than just
remove CALL64m?
- David
On Tue, Jun 8, 2010 at 5:09 PM, Eli Friedman <eli.friedman at gmail.com> wrot...
2010 Jun 08
2
[LLVMdev] Always unfold memory operand
...void
llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(): Assertion
`Node2Index[SU->NodeNum] > Node2Index[I->getSUnit()->NodeNum] && "Wrong
topological sorting"' failed.
bugpoint produced this minimal example which triggers the problem:
define ccc void @ArgsFree() nounwind {
entry:
%0 = load void (i8*)** undef, align 4
call ccc void %0(i8* undef) nounwind
unreachable
}
Any ideas?
- David
On Tue, Jun 8, 2010 at 4:04 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Tue, Jun 8, 2010 at 2:05 PM, David Meyer <pdox at google.com&g...
2010 Jun 09
0
[LLVMdev] Always unfold memory operand
...eDAGTopologicalSort::InitDAGTopologicalSorting(): Assertion
> `Node2Index[SU->NodeNum] > Node2Index[I->getSUnit()->NodeNum] && "Wrong
> topological sorting"' failed.
> bugpoint produced this minimal example which triggers the problem:
> define ccc void @ArgsFree() nounwind {
> entry:
> %0 = load void (i8*)** undef, align 4
> call ccc void %0(i8* undef) nounwind
> unreachable
> }
> Any ideas?
> - David
I'm not really sure... possibly something is expecting to be able to
fold the load into the call inst, and fails.
-Eli
>...
2010 Jun 08
2
[LLVMdev] Always unfold memory operand
Hi,
I am attempting to modify LLVM to generate code for an architecture which is
nearly identical to X86-64, but with a few minor differences.
In particular, "call" must always have a register operand, and cannot have a
memory operand. Any ideas on how I can express this rule?
Thanks,
- David
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2010 Jun 08
0
[LLVMdev] Always unfold memory operand
On Tue, Jun 8, 2010 at 2:05 PM, David Meyer <pdox at google.com> wrote:
> Hi,
> I am attempting to modify LLVM to generate code for an architecture which is
> nearly identical to X86-64, but with a few minor differences.
> In particular, "call" must always have a register operand, and cannot have a
> memory operand. Any ideas on how I can express this rule?
Just get