[LLVMdev] At which point application vs target machine type width splitting happens?

Tim Northover t.p.northover at gmail.com
Fri Feb 22 04:27:19 PST 2013


Hi Paul,

On Fri, Feb 22, 2013 at 12:08 PM, Paul Sokolovsky <pmiscml at gmail.com> wrote:
> So, it seems to be handled somewhere in target-independent code
> generator, can someone give a pointer to the code (and docs on this
> specific matter if any, because that's rather important machine-specific
> optimization topic IMHO, if you step aside from 32bit world).

The code you want is in lib/CodeGen/SelectionDAG/LegalizeTypes.cpp. I
think it happens between "-view-legalize-types-dags" and
"-view-dag-combine-lt-dags". Essentially, any type that doesn't have a
valid register class associated to it gets lowered (by expanding in
this case) to operations on types that *do* have legal
register-classes.

Unfortunately it's not got much independent documentation.

Tim.



More information about the llvm-dev mailing list