[LLVMdev] Inconsistent label syntax in LLVM assembly
nkavv at physics.auth.gr
nkavv at physics.auth.gr
Sun Jan 20 03:00:34 PST 2013
Hi all,
i'm writing a TXL (http://www.txl.ca) grammar and a revamp of
bison/flex grammar for LLVM.
I've noticed an inconsistency regarding label naming conventions.
For instance, the following is a segment of legit LLVM assembly
(human-readable) IR:
br i1 %38, label %17, label %39
; <label>:39 ; preds = %._crit_edge
ret void
However, ";" is a comment-line character. How is this interpreted, as
a meta-comment? (a semantically important comment)?
Other branches appear using regular conventions:
br i1 %exitcond, label %._crit_edge, label %.lr.ph
._crit_edge: ; preds = %.lr.ph, %.preheader
So, naturally I have some questions:
1) What is the differences among the branch labels? Differences in the
formation (e.g. emitted by different passes?)
2) How to normalize the appearance of branch labels? I.e. is it
possible to not emit the strange ; <label>:39 like ones?
3) Why <label>:39 and not 39: ?
4) Why not prefixing all labels with <label>?
Best regards
Nikolaos Kavvadias
More information about the llvm-dev
mailing list