http://llvm.org/bugs/show_bug.cgi?id=9344

           Summary: ARM sub-architecture support
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: ARM
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]


When defining build attributes or codegen options for ARM, we need to know what
architecture, sub-architecture (including the default options) but also what
options the user has overriden.

Currently, there are some string comparison of the cpu name to "cortex-a8",
which is clearly broken (what about a9?). There is also a method "isCortexA8()"
which suffers from the same problem.

Some options, like Advanced_SIMD build attribute, has no way of knowing if it
has to emit the not-allowed option or just leave it blank, as there is no way
of differentiating if the user has chosen a target without NEON or has
explicitly disabled NEON on a target with it.

I propose we should build an infrastructure that will return possible AND
implemented abilities in a defined sub-target.

For instance, Cortex-A9 CAN-HAVE NEON but the Tegra2 board doesn't, so the
result of the two calls below would be:

subtarget->hasNEON() : false
subtarget->supportsNEON() : true

or some other more refined architecture like:

subtarget->hasNEON() : false
subtarget->supported->hasNEON() : true

With supported being a subtarget type and always being filled with the default
parameters, while the subtarget itself can be modified with the command-line
parameters.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to