JamesNagurne added a comment.

Hi Simon et. al., I'm working on a downstream ARM toolchain and have 
downstreamed this change into our codebase.
We saw that you've fixed the -mfpu=none issue and have taken that as well, but 
are still running into some issues.

Prior to your change, the optionset "-mcpu=cortex-m4 -mfloat-abi=hard" created 
the following target features in the LLVM IR coming out of clang:
"target-features"="+armv7e-m,+d16,+dsp,+fp-only-sp,+hwdiv,+thumb-mode,+vfp4,-crc,-dotprod,-fp16fml,-hwdiv-arm,-ras"

In specific, note the +d16, +fp-only-sp.

After your changes, we're not seeing the associated -d32, -fp64 target features:
"target-cpu"="cortex-m4" 
"target-features"="+armv7e-m,+dsp,+hwdiv,+thumb-mode,+vfp4,-crc,-dotprod,-fp16fml,-hwdiv-arm,-ras"

As a result, we are getting linktime failures between our libraries, which use 
"-mcpu=cortex-m4 -mfloat-abi=hard", and our tests, which specifically call out 
the FPU version being used.
An interesting note is that the target machine table has the following:

  def : ProcessorModel<"cortex-m4", CortexM4Model,        [ARMv7em,
                                                           FeatureVFP4_D16_SP,
                                                           
FeaturePrefLoopAlign32,
                                                           FeatureHasSlowFPVMLx,
                                                           FeatureUseMISched,
                                                           FeatureUseAA,
                                                           
FeatureHasNoBranchPredictor]>;

Would this not mean that we'd expect vfp4-d16-sp when not otherwise specified? 
If not, then what is the expected behavior of -mfloat-abi=hard in the absence 
of an -mfpu specification?

Thanks,
J.B. Nagurne
Texas Instruments
Code Generation


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60691/new/

https://reviews.llvm.org/D60691



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D60691: [ARM] Replac... James Nagurne via Phabricator via cfe-commits

Reply via email to