[LLVMbugs] [Bug 20989] New: Distros need a mechanism to configure default ISA for given ABI

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Sep 17 18:17:54 PDT 2014


            Bug ID: 20989
           Summary: Distros need a mechanism to configure default ISA for
                    given ABI
           Product: clang
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Driver
          Assignee: unassignedclangbugs at nondot.org
          Reporter: wookey at wookware.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Distros set a default ISA level for their architectures/ports/ABIs which
changes slowly over time. E.g. Debian 'armhf' uses the ABI defined by
'arm-linux'gnueabihf' (EABI with floats passed in fp registers). The ISA used
is v7 with thumb enabled and VFP3-d16 FP, and no SIMD (NEON).

Any package built for Debian with gcc that does not specify otherwise
explicitly, will be built this way because gcc is configured at build time to
these defaults.

All binary distros have similar implicit of explicit defaults that all
compilers in the archive should use consistently for all supported

Typically an ABI/port/arch will have it's base ISA changed a few times over its
lifetime (x86 ISA default moved from i386 to i486 to i586 in Debian for
example, with MMX and SSE made standard at some point). There is also an
implicit -mcpu optimisation applied - typically the 'most generic' one for the
hardware the distro supports/targets.

clang does not currently have a mechanism to set such defaults at built time,
and expects each package to explicitly set options if they differ from upstream
defaults. It is not the responsibility of each package to set such options, as
then changing them over time becomes almost impossible. It should be possible
to tell the compiler to build for a particular default ISA and cpu level by
default unless told otherwise. This could be a build-time configuration (as it
is for gcc) or some kind of config file in the package that is read.

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140918/88a6317e/attachment.html>

More information about the llvm-bugs mailing list