[PATCH] D33287: [Linker] Add support for linking ARM and Thumb IR modules.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Tue May 23 10:36:19 PDT 2017



On 23/05/2017 18:20, Eric Christopher wrote:
> I think the general way I'd look at fixing this is:
> 
> a) migrate to a single TargetMachine in the backend (you've apparently 
> got a patch out for this, but needs reviewing)

Yep, https://reviews.llvm.org/D33318 but that's more of a cleanup and 
should be a NFC.

> b) migrate to using thumb as a subtarget feature on every function from 
> code generation

I've just put up a clang patch that should do that 
https://reviews.llvm.org/D33448

> c) autoupgrade modules using a thumb triple to have the thumb attribute 
> on functions (making this patch obsolete)

What would be the best place for this upgrade be? I think we still have 
to update Triple::isCompatible to allow linking armxx and thumbxx 
triples. I'll update this patch tomorrow.

> d) ... something I'm probably forgetting.

I've also put up a patch fixing a problem with mixing Thumb and ARM 
functions in a single compilation unit https://reviews.llvm.org/D33436



(b) and (c) would also be a first step towards getting rid of the 
thumbxx triples, as David suggested, although thumbxx triples are 
currently the only way to specify that all functions in a compilation 
unit have +thumb-mode in the llvm binaries AFAIK.



More information about the llvm-commits mailing list