Displaying 3 results from an estimated 3 matches for "savedregs".
2016 Jul 13
2
IPRA, interprocedural register allocation, question
...”
     ...
     TFI->determineCalleeSaves() {        “Target/XYZ/”
           TargetFrameLowering::determineCalleeSaves() {   “CodeGen/”
                Return <<< some object derived from “*CallingConv.td” >>>;     “build/lib/Target/XYX/”
           }
           ...
           SavedRegs.set(Reg);  // to “add” a reg, EG for ‘hasFP’, ETC
           ...
     }
}
The SavedRegs set always starts out with a predefined calling-convention value
That comes typically from “*CallingConv.td” hence is not function-specific.
The only time SavedRegs.reset() is ever called (which is rarely to b...
2016 Jul 13
2
IPRA, interprocedural register allocation, question
...”
     ...
     TFI->determineCalleeSaves() {        “Target/XYZ/”
           TargetFrameLowering::determineCalleeSaves() {   “CodeGen/”
                Return <<< some object derived from “*CallingConv.td” >>>;     “build/lib/Target/XYX/”
           }
           ...
           SavedRegs.set(Reg);  // to “add” a reg, EG for ‘hasFP’, ETC
           ...
     }
}
The SavedRegs set always starts out with a predefined calling-convention value
That comes typically from “*CallingConv.td” hence is not function-specific.
The only time SavedRegs.reset() is ever called (which is rarely to b...
2016 Jul 12
3
IPRA, interprocedural register allocation, question
Mehdi,
             I am looking for an understanding of   1) IPRA in general,   2) IPRA in LLVM.
Whether I want to use LTO or not is a separate issue.
1)  I currently believe it is a true statement that:
                If all external functions are known to not call back into the “whole-program”
                Being compiled, then IPRA is free to do anything at all to the functions being