[LLVMbugs] [Bug 861] NEW: need to support 2-step legalization for 16-bit targets?

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Tue Aug 1 07:59:06 PDT 2006


           Summary: need to support 2-step legalization for 16-bit targets?
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Common Code Generator Code
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: duraid at octopus.com.au

on a target with only i16 registers, the following code:

ulong %foo() { ret ulong 31189350395091 }

asserts in legalization: instead of being legalized down to 4xi16, it gets
turned into 2xi32 and then trips over an assert (LegalizeDAG.cpp:1458, "Register
type must be legal!") - the code there seems to assume that if an integer isn't
legal, one "break up" into two smaller regs is sufficient to make it so. This is
true for any target with i32 regs since i64 is the biggest we have, but if even
i32 isn't legal for a target, further legalization is required.

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.

More information about the llvm-bugs mailing list