Displaying 4 results from an estimated 4 matches for "ld2volatil".
Did you mean:
ld2volatile
2012 Aug 14
2
[LLVMdev] Load serialisation during selection DAG building
...ST
and the chain like:
LD1 LD2
^ ^
| |
\ /
TokenFactor
^
|
ST
then the add instruction is selected. However, if operand 1 of the add is a volatile load, then the chain looks like:
LD1
^
|
LD2Volatile
|
ST
In this case the add instruction cannot be selected. The operator is commutative, so instruction selection matches the non-volatile load against the operand 1 but then fails because to select this instruction would mean that the volatile load into a register (to match operand 0) wo...
2012 Aug 14
0
[LLVMdev] Load serialisation during selection DAG building
...^
> | |
> \ /
> TokenFactor
> ^
> |
> ST
>
> then the add instruction is selected. However, if operand 1 of the add is a volatile load, then the chain looks like:
>
> LD1
> ^
> |
> LD2Volatile
> |
> ST
>
> In this case the add instruction cannot be selected. The operator is commutative, so instruction selection matches the non-volatile load against the operand 1 but then fails because to select this instruction would mean that the volatile load into a register (to...
2012 Aug 13
0
[LLVMdev] Load serialisation during selection DAG building
Steve,
I had created a patch last year that does something similar to what you
describe for regular loads and stores using aliasing information. I
think that the last message in the thread was:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120402/140299.html
This approach has worked for me, but it is not the preferred solution
going forward. The preferred solution is to keep the
2012 Aug 13
3
[LLVMdev] Load serialisation during selection DAG building
I've got a question about how SelectionDAGBuilder treats loads.
The LLVM Language Reference Manual explicitly states that the order of volatile operations may be changed relative to non-volatile operations. However, when the SelectionDAGBuilder in LLVM 3.1 encounters a volatile load, it flushes all pending loads and then chains the volatile load onto them meaning that the volatile load must