[PATCH] [AArch64] fix PR22408: clang no longer bootstraps itself on AArch64 linux

Tim Northover 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.


REPOSITORY
  rL LLVM

================
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
-def TLSDESC_BLR
-    : 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.

http://reviews.llvm.org/D7677

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list