search for: ld2volatil

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