[LLVMdev] PR 5723

Anton Korobeynikov anton at korobeynikov.info
Tue Dec 8 13:53:34 PST 2009

Hello, David

> For X86 CALLSEQ_START gets selected to ADJCALLSTACKDOWN or
> ADJCALLSTACKDOWN64 in this case.  So is CALLSEQ_START expected
> to appear only once (at the top of the function)?  The comments
> are rather confusing.  It seems like CALLSEQ_START is supposed
> to appear before every call, but surely there's only one stack
> adjustment in the final code.
Right. Every call is surrounded by callseq_{start,end} nodes. The
difference here is that call to special symbol is not real, it's not
generated by lowering of the ISD::CALL node, thus no callseq stuff is
ever generated.

You might want to look into TLS lowering code inside
X86ISelLowering.cpp to introduce yourself into this this.

With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University

More information about the llvm-dev mailing list