Displaying 9 results from an estimated 9 matches for "setregmask".
2016 May 28
2
Updating RegMask inline
static void setXXX(MachineInstr &MI, ...) {
for (MachineOperand &MO : MI.operands()) {
if (MO.isRegMask())
MO.setRegMask(...);
}
}
> On May 27, 2016, at 7:02 PM, vivek pandya via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
>
>
> On Sat, May 28, 2016 at 7:29 AM, Matthias Braun <matze at braunis.de <mailto:matze at braunis.de>> wrote:
>
>> On May 27, 2016, at 6:55 PM,...
2016 May 28
0
Updating RegMask inline
On Sat, May 28, 2016 at 7:33 AM, Matthias Braun <matze at braunis.de> wrote:
> static void setXXX(MachineInstr &MI, ...) {
> for (MachineOperand &MO : MI.operands()) {
> if (MO.isRegMask())
> MO.setRegMask(...);
> }
> }
>
> Ok this is what Mehdi Amini suggested. I will do that, but just to note
this will add method to MO so this change is not completely contained in
IPRA files.
Vivek
> On May 27, 2016, at 7:02 PM, vivek pandya via llvm-dev <
> llvm-dev at lists.llvm.org> wrot...
2016 May 28
2
[GSoC 2016] [Weekly Status] Interprocedural Register Allocation
...ass that iterates through
each registers and check if it is used or not and based on that details
create a RegMask and a target specific machine function pass that uses the
RegMask created by second pass and propagates information by updating call
instructions RegMask. To update the RegMask of MI , setRegMask() function
has been added to MachineOperand, a command line option -enable-ipra and
debug type -debug-only=“ipra" has been added to control the optimization
through llc.
Testing:
=====
The above mentioned implementation has been tested over SNU-Real-Time
benchmark suit (http://www.cprover.org...
2016 Jun 12
2
[GSoC 2016] [Weekly Status] Interprocedural Register Allocation
...ters and check if it is used or not and based on that
>> details create a RegMask and a target specific machine function pass that
>> uses the RegMask created by second pass and propagates information by
>> updating call instructions RegMask. To update the RegMask of MI ,
>> setRegMask() function has been added to MachineOperand, a command line
>> option -enable-ipra and debug type -debug-only=“ipra" has been added to
>> control the optimization through llc.
>>
>> Testing:
>> =====
>> The above mentioned implementation has been tested over...
2016 Jun 20
2
[GSoC 2016] [Weekly Status] Interprocedural Register Allocation
...lt; "Call Instruction Before Register Usage Info Propagation :
\n");
DEBUG(dbgs() << MI << "\n");
auto UpdateRegMask = [&](const Function *F) {
const auto *RegMask = PRUI->getRegUsageInfo(F);
if (!RegMask)
return;
setRegMask(MI, &(*RegMask)[0]);
Changed = true;
};
MachineOperand &Operand = MI.getOperand(0);
if (Operand.isGlobal())
UpdateRegMask(cast<Function>(Operand.getGlobal()));
else if (Operand.isSymbol())
UpdateRegMask(M->getFunction(Operand.getSymb...
2016 Jun 19
2
[GSoC 2016] [Weekly Status] Interprocedural Register Allocation
...that
>>>>> details create a RegMask and a target specific machine function pass that
>>>>> uses the RegMask created by second pass and propagates information by
>>>>> updating call instructions RegMask. To update the RegMask of MI ,
>>>>> setRegMask() function has been added to MachineOperand, a command line
>>>>> option -enable-ipra and debug type -debug-only=“ipra" has been added to
>>>>> control the optimization through llc.
>>>>>
>>>>> Testing:
>>>>> =====
>...
2016 Jun 15
2
[GSoC 2016] [Weekly Status] Interprocedural Register Allocation
...f it is used or not and based on that
>>> details create a RegMask and a target specific machine function pass that
>>> uses the RegMask created by second pass and propagates information by
>>> updating call instructions RegMask. To update the RegMask of MI ,
>>> setRegMask() function has been added to MachineOperand, a command line
>>> option -enable-ipra and debug type -debug-only=“ipra" has been added to
>>> control the optimization through llc.
>>>
>>> Testing:
>>> =====
>>> The above mentioned implementat...
2016 May 28
0
Updating RegMask inline
...ethod "setOperandMask()" in class MachineOperand, and then when
>>> you find a call you just walk all the operands till you find one which
>>> "isRegMask()" at which point you can update it.
>>>
>>> Ok.
>>
>
> Is it ok to add "setRegMaskOperand()" in class MI and looping through
> operands to find RegMask is also included in method ?
> -Vivek
>
>
> I expect your code to be the only user of such a function so I would not
> add it to MachineInstr but keep the code local in your pass for now (you
> can add a...
2016 May 28
3
Updating RegMask inline
...egMask in various other class.
>
> Add a method "setOperandMask()" in class MachineOperand, and then when you find a call you just walk all the operands till you find one which "isRegMask()" at which point you can update it.
>
> Ok.
>
> Is it ok to add "setRegMaskOperand()" in class MI and looping through operands to find RegMask is also included in method ?
> -Vivek
I expect your code to be the only user of such a function so I would not add it to MachineInstr but keep the code local in your pass for now (you can add a static helper function in th...