[LLVMdev] various mips16 and micro mips issues

reed kotler rkotler at mips.com
Fri Jan 20 13:59:14 PST 2012


We are starting to look at the mips16 and micro mips ports.

There are various design issues that people may have some good input on.
Especially in how to structure the TD files and other optimizer issues.

Mips16 is sort of like thumb and Micro Mips like thumb2 as far as I 
understand.

Mips16 or Micro Mips can live inside of either MIPS32 or MIPS64.

In gcc, it's possible using attributes to change the default mode of 
compilation for a given compilation unit.

So you can start in Mips32 and for some function X go to Mips16 and then 
go back to Mips32.

So then would Mips16 and Micro Mips just be features that are added to 
certain processors, in terms of the td files?

I guess that clang can pass attributes through that can change a mode?

I'm not sure exactly how ARM solves this right now.

Also there is the other issue of the compiler deciding on it's own when 
to switch say between Mips32 and Mips16 for example based on optimizer 
criteria. I'm not sure if the Arm code generators are doing this at all.

Tia for any input.

Reed




More information about the llvm-dev mailing list