Skip to content
  1. Dec 12, 2014
    • Charlie Turner's avatar
      Emit Tag_ABI_FP_16bit_format build attribute. · 1a53996c
      Charlie Turner authored
      The __fp16 type is unconditionally exposed. Since -mfp16-format is not yet
      supported, there is not a user switch to change this behaviour. This build
      attribute should capture the default behaviour of the compiler, which is to
      expose the IEEE 754 version of __fp16.
      
      When -mfp16-format is emitted, that will be the way to control the value of
      this build attribute.
      
      Change-Id: I8a46641ff0fd2ef8ad0af5f482a6d1af2ac3f6b0
      llvm-svn: 224115
      1a53996c
  2. Dec 05, 2014
    • Charlie Turner's avatar
      Add missing FP build attribute tests. · c96e95c1
      Charlie Turner authored
      The test file test/CodeGen/ARM/build-attributes.ll was missing several
      floating-point build attribute tests. The intention of this commit is that for
      each CPU / architecture currently tested, there are now tests that make sure
      the following attributes are sufficiently checked,
      
        * Tag_ABI_FP_rounding
        * Tag_ABI_FP_denormal
        * Tag_ABI_FP_exceptions
        * Tag_ABI_FP_user_exceptions
        * Tag_ABI_FP_number_model
      
      Also in this commit, the -unsafe-fp-math flag has been augmented with the full
      suite of flags Clang sends to LLVM when you pass -ffast-math to Clang. That is,
      `-unsafe-fp-math' has been changed to `-enable-unsafe-fp-math -disable-fp-elim
      -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast'
      
      Change-Id: I35d766076bcbbf09021021c0a534bf8bf9a32dfc
      llvm-svn: 223454
      c96e95c1
  3. Dec 03, 2014
    • Charlie Turner's avatar
      Emit ABI_FP_rounding attribute. · f02c9248
      Charlie Turner authored
      LLVM understands a -enable-sign-dependent-rounding-fp-math codegen option. When
      the user has specified this option, the Tag_ABI_FP_rounding attribute should be
      emitted with value 1. This option currently does not appear to disable
      transformations and optimizations that assume default floating point rounding
      behavior, AFAICT, but the intention should be recorded in the build attributes,
      regardless of what the compiler actually does with the intention.
      
      Change-Id: If838578df3dc652b6f2796b8d152545674bcb30e
      llvm-svn: 223218
      f02c9248
    • Charlie Turner's avatar
      Add tests for default value of Tag_ABI_FP_rounding. · 1620a69f
      Charlie Turner authored
      Change-Id: I051866d073fc6ce87ce3e693a3762da6d81f4393
      llvm-svn: 223217
      1620a69f
  4. Dec 02, 2014
    • Charlie Turner's avatar
      Emit Tag_ABI_FP_denormal correctly in fast-math mode. · 15f91c52
      Charlie Turner authored
      The default ARM floating-point mode does not support IEEE 754 mode exactly. Of
      relevance to this patch is that input denormals are flushed to zero. The way in
      which they're flushed to zero depends on the architecture,
      
        * For VFPv2, it is implementation defined as to whether the sign of zero is
          preserved.
        * For VFPv3 and above, the sign of zero is always preserved when a denormal
          is flushed to zero.
      
      When FP support has been disabled, the strategy taken by this patch is to
      assume the software support will mirror the behaviour of the hardware support
      for the target *if it existed*. That is, for architectures which can only have
      VFPv2, it is assumed the software will flush to positive zero. For later
      architectures it is assumed the software will flush to zero preserving sign.
      
      Change-Id: Icc5928633ba222a4ba3ca8c0df44a440445865fd
      llvm-svn: 223110
      15f91c52
  5. Nov 03, 2014
    • Charlie Turner's avatar
      Remove the cortex-a9-mp CPU. · 1d8cc909
      Charlie Turner authored
      This CPU definition is redundant. The Cortex-A9 is defined as
      supporting multiprocessing extensions. Remove its definition and
      update appropriate tests.
      
      LLVM defines both a cortex-a9 CPU and a cortex-a9-mp CPU. The only
      difference between the two CPU definitions in ARM.td is that
      cortex-a9-mp contains the feature FeatureMP for multiprocessing
      extensions.
      
      This is redundant since the Cortex-A9 is defined as having
      multiprocessing extensions in the TRMs. armcc also defines the
      Cortex-A9 as having multiprocessing extensions by default.
      
      Change-Id: Ifcadaa6c322be0a33d9d2a39cfdd7da1d75981a7
      llvm-svn: 221166
      1d8cc909
  6. Oct 30, 2014
  7. Oct 13, 2014
  8. Oct 08, 2014
  9. Oct 01, 2014
    • Oliver Stannard's avatar
      [ARM] Add support for Cortex-M7, FPv5-SP and FPv5-DP (LLVM) · 37e4daab
      Oliver Stannard authored
      The Cortex-M7 has 3 options for its FPU: none, FPv5-SP-D16 and
      FPv5-DP-D16. FPv5 has the same instructions as FP-ARMv8, so it can be
      modelled using the same target feature, and all double-precision
      operations are already disabled by the fp-only-sp target features.
      
      llvm-svn: 218747
      37e4daab
  10. Jul 25, 2014
  11. May 27, 2014
  12. Feb 16, 2014
  13. Jan 20, 2014
  14. Jan 19, 2014
  15. Jan 16, 2014
  16. Jan 10, 2014
  17. Nov 25, 2013
  18. Nov 22, 2013
  19. Nov 21, 2013
  20. Nov 12, 2013
  21. Nov 01, 2013
    • Bradley Smith's avatar
      [ARM] Add Virtualization subtarget feature and more build attributes in this area · 2521975a
      Bradley Smith authored
      Add a Virtualization ARM subtarget feature along with adding proper build
      attribute emission for Tag_Virtualization_use (encodes Virtualization and
      TrustZone) and Tag_MPextension_use.
      
      Also rework test/CodeGen/ARM/2010-10-19-mc-elf-objheader.ll testcase to
      something that is more maintainable. This changes the focus of this
      testcase away from testing CPU defaults (which is tested elsewhere), onto
      specifically testing that attributes are encoded correctly.
      
      llvm-svn: 193859
      2521975a
    • Bradley Smith's avatar
      [ARM] Fix Tag_ABI_HardFP_use build attribute · c848beba
      Bradley Smith authored
      Fix Tag_ABI_HardFP_use build attribute to handle single precision FP,
      replace deprecated Tag_ABI_HardFP_use value of 3 with 0 and also add
      some tests for Tag_ABI_VFP_args.
      
      llvm-svn: 193856
      c848beba
  22. Oct 28, 2013
    • Logan Chien's avatar
      [arm] Implement eabi_attribute, cpu, and fpu directives. · 8cbb80d1
      Logan Chien authored
      This commit allows the ARM integrated assembler to parse
      and assemble the code with .eabi_attribute, .cpu, and
      .fpu directives.
      
      To implement the feature, this commit moves the code from
      AttrEmitter to ARMTargetStreamers, and several new test
      cases related to cortex-m4, cortex-r5, and cortex-a15 are
      added.
      
      Besides, this commit also change the Subtarget->isFPOnlySP()
      to Subtarget->hasD16() to match the usage of .fpu directive.
      
      This commit changes the test cases:
      
      * Several .eabi_attribute directives in
        2010-09-29-mc-asm-header-test.ll are removed because the .fpu
        directive already cover the functionality.
      
      * In the Cortex-A15 test case, the value for
        Tag_Advanced_SIMD_arch has be changed from 1 to 2,
        which is more precise.
      
      llvm-svn: 193524
      8cbb80d1
  23. Oct 14, 2013
  24. Oct 11, 2013
  25. Oct 07, 2013
  26. Oct 03, 2013
  27. Sep 13, 2013
  28. Jun 27, 2013
  29. Jun 26, 2013
  30. Feb 07, 2011
  31. Sep 30, 2010
Loading