We need a better mechanism for expressing which calls you are allowed
to emit and which calls are recognized. This should be applied to the 17 branch.
Details
Diff Detail
Event Timeline
Thanks for getting a patch out so quickly. This looks like it avoids the issue we were seeing in our build.
llvm/test/Transforms/PreISelIntrinsicLowering/X86/load-relative.ll | ||
---|---|---|
1 | Why were load-relative.ll and obj-arc.ll made x86 specific tests? They seem like they should work on any platform. I'm not opposed to the change, but it's unclear to me what this accomplishes. |
llvm/test/Transforms/PreISelIntrinsicLowering/X86/load-relative.ll | ||
---|---|---|
1 | The test needs a TargetMachine to query the subtarget. It was weird this didn't have one before |
llvm/test/Transforms/PreISelIntrinsicLowering/X86/load-relative.ll | ||
---|---|---|
1 | Right, I missed that. Moving this makes total sense. Thanks for the explanation. |
llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp | ||
---|---|---|
208 | This is using the TLI for the wrong function: It's the one for the intrinsic, rather than the one for the intrinsic caller. |
llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp | ||
---|---|---|
208 | I think this is harmless because the runtime libcall system isn't really refined per function. It's effectively a hardcoded table driven off the triple |
This is using the TLI for the wrong function: It's the one for the intrinsic, rather than the one for the intrinsic caller.