[LLVMdev] Is it correct for a glue operand to be replaced with a chain?

Sam Parker S.Parker3 at lboro.ac.uk
Tue Mar 26 01:16:19 PDT 2013


I am confused about the behavior of chain of glue operands; I have a node
that receives the chain and a glue operand from the same node, and the ISEL
DAG looks how I want it to. However, once it passes to scheduling, the glue
no longer exists and the nodes are just chained, but twice. 

ISel output: 
ISEL: Starting pattern match on root node: 0x2c689c0: i32,ch = SHADDXH
0x2c688c0:2, 0x2c686c0, 0x2c688c0:1 [ID=13] 

  Initial Opcode index to 6962 
  Morphed node: 0x2c689c0: i32,ch = SHADDXH_RA 0x2c66500, 0x2c688c0:2,

Final schedule output: 
SU(4): 0x2c689c0: i32,ch = SHADDXH_RA 0x2c66500, 0x2c688c0:1, 0x2c688c0:1

Is this correct behavior? Because InstrEmitter then complains that the nodes
do not match the tablegen file, which I would say is correct. I'm letting
tablegen doing the pattern matching on the instructions, and this is
involving address calculations is that makes any difference... Does anyone
have any ideas? 


View this message in context: http://llvm.1065342.n5.nabble.com/Is-it-correct-for-a-glue-operand-to-be-replaced-with-a-chain-tp56213.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.

More information about the llvm-dev mailing list