[PATCH] [AArch64] fix PR22408: clang no longer bootstraps itself on AArch64 linux
t.p.northover at gmail.com
Mon Mar 2 18:58:08 PST 2015
It makes me sad, but there's nothing structurally wrong with the patch that I could see. Just that it's working around a wilfully broken linker that no-one even seems to intend to fix.
So, reluctantly, LGTM.
Comment at: lib/Target/AArch64/AArch64InstrInfo.td:1066
@@ -1051,7 +1065,3 @@
-// Pseudo-instruction representing a BLR with attached TLSDESC relocation. It
-// gets expanded to two MCInsts during lowering.
-let isCall = 1, Defs = [LR] in
- : Pseudo<(outs), (ins GPR64:$dest, i64imm:$sym),
- [(AArch64tlsdesc_call GPR64:$dest, tglobaltlsaddr:$sym)]>;
+// FIXME: maybe the scratch register used shouldn't be fixed to X1?
+// FIXME: can "hasSideEffects be dropped?
It definitely shouldn't, unfortunately it probably is the simplest implementation, and this entire hack is obscene enough that I don't think it's worth polluting any more of the backend with it than we have too.
More information about the llvm-commits