Page MenuHomePhabricator

NikolaPrica (Nikola Prica)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 18 2017, 7:08 AM (91 w, 2 d)

Recent Activity

Yesterday

NikolaPrica added a comment to D60715: [ISEL] Collect argument's forwarding regs when lowering calls.

@bjope @aprantl Thank you for your comments!

Wed, Apr 17, 9:01 AM · debug-info

Feb 19 2019

NikolaPrica added inline comments to D58238: [DebugInfo] MachineSink: Insert undef DBG_VALUEs when sinking instructions, try to forward copies.
Feb 19 2019, 7:40 AM · Restricted Project

Feb 14 2019

NikolaPrica added inline comments to D58042: [LiveDebugValues] Emit parameter's entry value.
Feb 14 2019, 3:05 AM · debug-info

Jan 28 2019

NikolaPrica added a comment to D57271: [DebugInfo] Handle restore instructions in LiveDebugValues.

LGTM!

Jan 28 2019, 2:35 AM

Oct 5 2018

NikolaPrica added a comment to D52921: [LiveDebugValues] Extend var ranges through artificial blocks.

Looks good to me. Just one question, why didn't you use MIR as test file?

Oct 5 2018, 2:48 AM

Jul 27 2018

NikolaPrica added a comment to D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

Yes. I think that it make sense. IsCopyInstr() currently supports check target specific instructions, but with that extension it could be used to check more general instructions. The only thing that this extension needs to worry about is proper setting of source and destination operands, but I suppose that all of this instructions that are considered as IsCopy() have source as operand 1 and destination as operand 0.

Jul 27 2018, 1:25 AM

Jul 12 2018

NikolaPrica added a comment to D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

Thank you for review!

Jul 12 2018, 1:27 AM · debug-info

Jul 9 2018

NikolaPrica updated the diff for D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

renamed makeTransferDebugPair -> insertTransferDebugPair
renamed transfer -> process
removed unnecessary DILocation metadata from tests

Jul 9 2018, 11:55 AM · debug-info

Jul 2 2018

NikolaPrica added a comment to D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

Ping.

Jul 2 2018, 7:59 AM · debug-info

Jun 27 2018

NikolaPrica added a comment to D48590: [DwarfDebug] Remove unused argument (NFC).

One of my colleagues should commit this soon.

Jun 27 2018, 8:00 AM · debug-info

Jun 26 2018

NikolaPrica added a comment to D48590: [DwarfDebug] Remove unused argument (NFC).

Thank you for reviewing!

Jun 26 2018, 10:30 PM · debug-info
NikolaPrica created D48590: [DwarfDebug] Remove unused argument (NFC).
Jun 26 2018, 3:00 AM · debug-info

Jun 21 2018

NikolaPrica added a comment to D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

I thought that comments were submitted along with patch.

Jun 21 2018, 3:03 PM · debug-info
NikolaPrica updated the diff for D44016: [LiveDebugValues] Track transferring variable's value from one register to another.
Jun 21 2018, 8:14 AM · debug-info

Jun 20 2018

NikolaPrica added a comment to D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

@aprantl do you have any more concerns or is this ready for commit?

Jun 20 2018, 5:06 AM · debug-info

Jun 13 2018

NikolaPrica added a comment to D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

Ping.

Jun 13 2018, 8:17 AM · debug-info

Jun 8 2018

NikolaPrica updated the diff for D44016: [LiveDebugValues] Track transferring variable's value from one register to another.
Jun 8 2018, 4:15 AM · debug-info

Jun 7 2018

NikolaPrica updated the diff for D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

Updated patch to match TII isCopyInstr instruction.

Jun 7 2018, 10:12 AM · debug-info
NikolaPrica updated the diff for D47876: [Mips] Silencing warnings in instruction info (NFC).
Jun 7 2018, 5:34 AM
NikolaPrica created D47876: [Mips] Silencing warnings in instruction info (NFC).
Jun 7 2018, 4:55 AM

Jun 5 2018

NikolaPrica updated the diff for D47364: Change TII isCopyInstr way of returning arguments(NFC).

Updated isCopyInstr to take pointer to reference of MachineOperand.

Jun 5 2018, 10:12 AM
NikolaPrica added a comment to D47364: Change TII isCopyInstr way of returning arguments(NFC).

Yes. I agree. It would look prettier with reference. But we can't construct default MachineOperand like "MachineOperand MO;" and pass it to this isCopyInstr. We could construct it like "MachineOperand MO = MachineInstr::CreateReg();" but that is unnecessary object construction. Better way would be without need for object construction. Is my reasoning correct or am I missing something?

Jun 5 2018, 3:10 AM
NikolaPrica added a comment to D47364: Change TII isCopyInstr way of returning arguments(NFC).

Ping.

Jun 5 2018, 2:23 AM

Jun 1 2018

NikolaPrica added reviewers for D47364: Change TII isCopyInstr way of returning arguments(NFC): craig.topper, MatzeB.
Jun 1 2018, 5:56 AM

May 25 2018

NikolaPrica created D47364: Change TII isCopyInstr way of returning arguments(NFC).
May 25 2018, 2:57 AM

May 23 2018

NikolaPrica updated the diff for D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

Updating patch to match latest trunk version.

May 23 2018, 7:51 AM

May 21 2018

NikolaPrica updated the diff for D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

Updated just comment in ARMBaseInstrInfo.cpp

May 21 2018, 3:30 AM

May 14 2018

NikolaPrica added a comment to D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

A general pointer you might have missed. We already track copy like instructions through isRegSequenceLike, isExtractSubRegLike and so on. These are more complicated than just plain copies though (e.g., VMOVRRD should already be supported).

May 14 2018, 7:23 AM

May 10 2018

NikolaPrica updated the diff for D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

@qcolombet Yes. It would be nice to have such interface but it would require a lot of additional work ( which would need to address all needed generic opcodes). This patch could be part of such work.

May 10 2018, 10:20 AM

Apr 17 2018

NikolaPrica added a comment to D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

Ping.

Apr 17 2018, 8:42 AM

Apr 13 2018

NikolaPrica added a comment to D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

@kparzysz There are already instructions that have different bits set for different opcodes. But you have a point. In purpose of creating useful interface for TII the best way may be to use such bit isPossilbe[copy/move] to exclude non-copy-instructions and after exclusion return source and destination registers depending on opcode? Or just do it without MCInstDesc exclusion?
@sdardis What do you think about this?

Apr 13 2018, 9:03 AM
NikolaPrica added a comment to D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

Why can't you use that hook then? Make it available for all targets in TargetInstrInfo. I think that adding such bits to the instruction descriptor is a bad idea in general.

Apr 13 2018, 6:26 AM
NikolaPrica updated the diff for D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

Added FIXME in ARMBaseInstrInfo::isCopyInstr
Untagged isMoveReg from VMOVRRD

Apr 13 2018, 4:16 AM
NikolaPrica added a comment to D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

Wouldn't it be better to have this as a TII hook? There are instructions like "or reg, 0" or "add reg, 0" that are effectively copies, but only with specific operands.

Apr 13 2018, 3:22 AM

Apr 12 2018

NikolaPrica updated the diff for D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

Removed isMoveReg from avx512_move_gpr

Apr 12 2018, 11:04 AM
NikolaPrica added inline comments to D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.
Apr 12 2018, 10:57 AM
NikolaPrica added inline comments to D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.
Apr 12 2018, 5:55 AM
NikolaPrica updated the diff for D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

Thank you for your reviews and expertise @efriedma and @craig.topper !

Apr 12 2018, 5:52 AM

Apr 11 2018

NikolaPrica updated the diff for D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

[ARM] Consider VORRq as copy instruction when two inputs are the same register

Treat tMOVsr as isMoveReg
Treat VMOVRRD as isMoveReg
Apr 11 2018, 4:55 AM
NikolaPrica added inline comments to D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.
Apr 11 2018, 2:18 AM

Apr 10 2018

NikolaPrica added reviewers for D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg': efriedma, chandlerc, craig.topper, qcolombet.
Apr 10 2018, 2:21 AM

Apr 6 2018

NikolaPrica added a comment to D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.

Ping.

Apr 6 2018, 5:10 AM

Apr 3 2018

NikolaPrica added a parent revision for D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg': D44016: [LiveDebugValues] Track transferring variable's value from one register to another.
Apr 3 2018, 2:41 AM
NikolaPrica updated the diff for D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

Splited patch in two revisions -> https://reviews.llvm.org/D45204

Apr 3 2018, 2:41 AM · debug-info
NikolaPrica added a child revision for D44016: [LiveDebugValues] Track transferring variable's value from one register to another: D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.
Apr 3 2018, 2:41 AM · debug-info
NikolaPrica created D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'.
Apr 3 2018, 2:41 AM

Apr 2 2018

NikolaPrica added a comment to D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

Sure. I will do so. Do you think that it would be better to provide 3 different patches for X86/ARM/MIPS separately or should I post it all in one?

Apr 2 2018, 6:53 AM · debug-info

Mar 30 2018

NikolaPrica added a comment to D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

Ping.

Mar 30 2018, 7:35 AM · debug-info

Mar 27 2018

NikolaPrica updated the diff for D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

I've added test case for MIPS integer/float point values and tests for tracking integer values for X86 and ARM. Because it is hard to find a small real example I produced test cases by manually altering the machine IR but I'm not quite sure about producing test case for floating points for X86 and ARM. Basically what I've done is add 'isMoveReg = 1' to the instructions that are mentioned in TargetInstrInfo::copyPhysReg. Maybe someone else who is more familiar with ARM/X86 could assist or take over if everything else is fine?

Mar 27 2018, 1:13 PM · debug-info

Mar 20 2018

NikolaPrica updated the diff for D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

Updated test to recognize metadata id number.

Mar 20 2018, 6:16 AM · debug-info
NikolaPrica retitled D44016: [LiveDebugValues] Track transferring variable's value from one register to another from WIP: [LiveDebugValues] Track transferring variable's value from one register to another to [LiveDebugValues] Track transferring variable's value from one register to another.
Mar 20 2018, 6:14 AM · debug-info

Mar 19 2018

NikolaPrica updated the diff for D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

I've changed patch to perform locally now by restricting copy instructions recognition to ones that copy to callee saved registers.
I've also added test for mips64 that I've managed to find without making any changes to MIR. Also I've extended this functionality for recognizing some of X86 and ARM instructions (I've marked some of instructions in copyPhysReg TII method). I suppose that this could be extended even more by labeling other instructions as isMoveReg but I'm not familiar with other architectures.

Mar 19 2018, 11:38 AM · debug-info
NikolaPrica updated the summary of D44016: [LiveDebugValues] Track transferring variable's value from one register to another.
Mar 19 2018, 11:33 AM · debug-info

Mar 13 2018

NikolaPrica added a comment to D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

What "here" are you referring to?

Mar 13 2018, 6:44 AM · debug-info

Mar 12 2018

NikolaPrica added a comment to D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

@aprantl > I've checked LiveDebugVariables pass and there is already such functionality but it performs only in blocks where DBG_VALUE is definded but copy instructions could occur in some further block. Maybe I should try to follow debuged value register location accros multiple blocks here and see whether it is copied to some other virtual register location?

Mar 12 2018, 10:24 AM · debug-info

Mar 5 2018

NikolaPrica added a comment to D44016: [LiveDebugValues] Track transferring variable's value from one register to another.

@sdardis @aprantl Thank you for your comments!

The first thought that came to my mind is: why not implement this functionality in DbgValueHistoryCalculator or DwarfDebug::buildLocationList(), or much earlier in LiveDebugVariables? I suppose that by doing it in LiveDebugValues there is a faint chance that we might be able to propagate a backup DBG_VALUE beyond basic block boundaries, but I'm not convinced that that is worth it.

Mar 5 2018, 11:50 AM · debug-info

Mar 2 2018

NikolaPrica updated the summary of D44016: [LiveDebugValues] Track transferring variable's value from one register to another.
Mar 2 2018, 7:50 AM · debug-info
NikolaPrica updated the summary of D44016: [LiveDebugValues] Track transferring variable's value from one register to another.
Mar 2 2018, 7:39 AM · debug-info
NikolaPrica created D44016: [LiveDebugValues] Track transferring variable's value from one register to another.
Mar 2 2018, 7:37 AM · debug-info

Feb 28 2018

NikolaPrica added a watcher for debug-info: NikolaPrica.
Feb 28 2018, 9:13 AM

Jan 15 2018

NikolaPrica updated the diff for D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.
Jan 15 2018, 6:33 AM

Jan 9 2018

NikolaPrica updated the diff for D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.
Jan 9 2018, 2:28 AM

Jan 8 2018

NikolaPrica updated the diff for D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.
Jan 8 2018, 11:21 AM
NikolaPrica updated the diff for D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.
Jan 8 2018, 9:43 AM

Jan 5 2018

NikolaPrica updated subscribers of D41626: [LiveDebugValues]Change condition for block termination recognition.
Jan 5 2018, 1:42 AM · debug-info

Dec 29 2017

NikolaPrica created D41626: [LiveDebugValues]Change condition for block termination recognition.
Dec 29 2017, 2:46 AM · debug-info
NikolaPrica updated the diff for D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.

MBB.instr_end() changed to MBB.end()

Dec 29 2017, 2:16 AM

Dec 20 2017

NikolaPrica updated the diff for D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.
Dec 20 2017, 8:23 AM

Dec 19 2017

NikolaPrica added a comment to D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.
Dec 19 2017, 12:53 PM
NikolaPrica added inline comments to D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.
Dec 19 2017, 11:15 AM

Dec 18 2017

NikolaPrica updated the diff for D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.

Please try it now.

Dec 18 2017, 2:58 AM

Dec 15 2017

NikolaPrica updated the diff for D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.
Dec 15 2017, 12:57 PM
NikolaPrica updated the diff for D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.
Dec 15 2017, 11:58 AM
NikolaPrica updated the diff for D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.

I wasn't able to produce simpler test example. I've deleted some of IR instructions from previous test. Deletion of any other instruction from IR would bypass the problem.

Dec 15 2017, 11:39 AM

Dec 14 2017

NikolaPrica created D41226: [LiveDebugValues] recognize spilled register that is killed in instruction after the spill.
Dec 14 2017, 12:40 AM

Sep 21 2017

NikolaPrica closed D37617: Debug info for variables whose type is shrinked to bool fix.
Sep 21 2017, 5:03 AM

Sep 12 2017

NikolaPrica updated the diff for D37617: Debug info for variables whose type is shrinked to bool fix.
Sep 12 2017, 9:21 AM
NikolaPrica updated the diff for D37617: Debug info for variables whose type is shrinked to bool fix.
Sep 12 2017, 8:00 AM

Sep 8 2017

NikolaPrica created D37617: Debug info for variables whose type is shrinked to bool fix.
Sep 8 2017, 2:48 AM

Aug 31 2017

NikolaPrica updated the diff for D35994: Debug info for variables whose type is shrinked to bool.

Updating test case.

Aug 31 2017, 8:07 AM

Aug 30 2017

NikolaPrica updated the diff for D35994: Debug info for variables whose type is shrinked to bool.
Aug 30 2017, 1:54 AM

Aug 29 2017

NikolaPrica updated the diff for D35994: Debug info for variables whose type is shrinked to bool.

Updated test case

Aug 29 2017, 5:17 AM

Aug 28 2017

NikolaPrica added a comment to D35994: Debug info for variables whose type is shrinked to bool.
val * (ValOther - ValInit) + ValInit:

If we are doing this expression, there should be an assertion in the code that ValInit < ValOther.

Aug 28 2017, 9:21 AM

Aug 11 2017

NikolaPrica updated the diff for D35994: Debug info for variables whose type is shrinked to bool.
Aug 11 2017, 4:20 AM

Aug 10 2017

NikolaPrica updated the diff for D35994: Debug info for variables whose type is shrinked to bool.

This patch implements new DIExpression :

Aug 10 2017, 7:37 AM

Aug 1 2017

NikolaPrica updated the diff for D35994: Debug info for variables whose type is shrinked to bool.

Sorry for spaming. First time using Phabricator. Uploaded wrong diff.

Aug 1 2017, 12:48 AM
NikolaPrica updated the diff for D35994: Debug info for variables whose type is shrinked to bool.

Changing test file from .c to .ll

Aug 1 2017, 12:42 AM
NikolaPrica added inline comments to D35994: Debug info for variables whose type is shrinked to bool.
Aug 1 2017, 12:39 AM

Jul 28 2017

NikolaPrica created D35994: Debug info for variables whose type is shrinked to bool.
Jul 28 2017, 7:01 AM