Page MenuHomePhabricator
Feed Advanced Search

Mon, Jul 15

NikolaPrica accepted D64500: [DebugInfo] Remove call sites when eliminating unreachable blocks.

The reason why I think it's hard to see that call site information has been removed is that, as far as I can tell there is no way to print the function attributes when doing something like -print-{before,after}-all, so it can be hard to to see where in the pass pipeline the callSites information was dropped. You could of course analyze the MIR and see where the information is likely to have been dropped, but I guess that can be difficult/annoying for larger programs.

Oh, I thought r364506 (D61061) implemented MIR printer support for call site metadata. If not, it's probably worth adding.

This dumps the CallSitesInfo when we producing a ".mir" file. The CallSitesInfo describes an internal state of the MF like the fixedStack, frameInfo etc. I'm not sure how we could make it recognizable in -print-{before,after}-all. Maybe like some metadata extension of call instruction. However, it should be part of another patch.

Mon, Jul 15, 4:32 AM · Restricted Project, debug-info

Thu, Jul 11

NikolaPrica added inline comments to rL365619: [ELF] Update test case due to llvm r365618.
Thu, Jul 11, 8:18 AM
NikolaPrica added a comment to D64500: [DebugInfo] Remove call sites when eliminating unreachable blocks.

@dstenb The patch looks good! LGTM! Thanks for working on this!

Thu, Jul 11, 4:07 AM · Restricted Project, debug-info

Wed, Jul 10

NikolaPrica committed rG6522bedefe3b: Revert "[ELF] Update test case due to llvm r365618" (authored by NikolaPrica).
Revert "[ELF] Update test case due to llvm r365618"
Wed, Jul 10, 12:02 PM
NikolaPrica committed rGbbfa4cf70b9a: Revert "[ELF] Loose a condition for relocation with a symbol" (authored by NikolaPrica).
Revert "[ELF] Loose a condition for relocation with a symbol"
Wed, Jul 10, 11:59 AM
NikolaPrica committed rL365686: Revert "[ELF] Update test case due to llvm r365618".
Revert "[ELF] Update test case due to llvm r365618"
Wed, Jul 10, 11:58 AM
NikolaPrica committed rL365685: Revert "[ELF] Loose a condition for relocation with a symbol".
Revert "[ELF] Loose a condition for relocation with a symbol"
Wed, Jul 10, 11:58 AM
NikolaPrica committed rGfcd978b0a6f5: [ELF] Update test case due to llvm r365618 (authored by NikolaPrica).
[ELF] Update test case due to llvm r365618
Wed, Jul 10, 4:21 AM
NikolaPrica added a comment to D64327: [ELF] Loose condition for relocation with a symbol.

@MaskRay Thanks for the heads up and review!

Wed, Jul 10, 4:20 AM · Restricted Project
NikolaPrica committed rL365619: [ELF] Update test case due to llvm r365618.
[ELF] Update test case due to llvm r365618
Wed, Jul 10, 4:20 AM
NikolaPrica committed rGfb163b4b207c: [ELF] Loose a condition for relocation with a symbol (authored by NikolaPrica).
[ELF] Loose a condition for relocation with a symbol
Wed, Jul 10, 4:19 AM
NikolaPrica committed rL365618: [ELF] Loose a condition for relocation with a symbol.
[ELF] Loose a condition for relocation with a symbol
Wed, Jul 10, 4:19 AM
NikolaPrica closed D64327: [ELF] Loose condition for relocation with a symbol.
Wed, Jul 10, 4:18 AM · Restricted Project

Mon, Jul 8

NikolaPrica created D64327: [ELF] Loose condition for relocation with a symbol.
Mon, Jul 8, 5:57 AM · Restricted Project

Jun 14 2019

NikolaPrica added a comment to D61062: Keep call site info valid through the backend.

Ping. Do we need to explain our concern more precisely?

Jun 14 2019, 1:25 AM · Restricted Project, debug-info

Jun 13 2019

NikolaPrica committed rG076ae0d2e2f6: [DebugInfo] Move Value struct out of DebugLocEntry as DbgValueLoc (NFC) (authored by NikolaPrica).
[DebugInfo] Move Value struct out of DebugLocEntry as DbgValueLoc (NFC)
Jun 13 2019, 3:21 AM
NikolaPrica committed rL363246: [DebugInfo] Move Value struct out of DebugLocEntry as DbgValueLoc (NFC).
[DebugInfo] Move Value struct out of DebugLocEntry as DbgValueLoc (NFC)
Jun 13 2019, 3:20 AM
NikolaPrica closed D63213: [DebugInfo] Move Value struct out of DebugLocEntry as DbgValueLoc (NFC).
Jun 13 2019, 3:20 AM · Restricted Project, debug-info

Jun 12 2019

NikolaPrica created D63213: [DebugInfo] Move Value struct out of DebugLocEntry as DbgValueLoc (NFC).
Jun 12 2019, 8:57 AM · Restricted Project, debug-info

Jun 10 2019

NikolaPrica added a comment to D61600: [DebugInfo] More precise variable range for stack locations.

Thanks for the review and patience!

Jun 10 2019, 1:42 AM · Restricted Project, debug-info
NikolaPrica committed rGabc1dff7e44a: [DebugInfo] More strict debug range for stack variables (authored by NikolaPrica).
[DebugInfo] More strict debug range for stack variables
Jun 10 2019, 1:39 AM
NikolaPrica committed rL362923: [DebugInfo] More strict debug range for stack variables.
[DebugInfo] More strict debug range for stack variables
Jun 10 2019, 1:38 AM
NikolaPrica closed D61600: [DebugInfo] More precise variable range for stack locations.
Jun 10 2019, 1:37 AM · Restricted Project, debug-info

Jun 6 2019

NikolaPrica added inline comments to D61062: Keep call site info valid through the backend.
Jun 6 2019, 8:14 AM · Restricted Project, debug-info

Jun 5 2019

NikolaPrica added a comment to D61600: [DebugInfo] More precise variable range for stack locations.

Have you tested the performance when compiling Clang with ASAN enabled to make sure we're not accidentally regressing because of the more thorough single-location check?

I've built LLVM with '-DLLVM_USE_SANITIZER=Address' using downloaded clang binary to produce private clang binary. I've run tests and compiled latest version of gdb with new private binary and I didn't see any regression there. Is that what you meant?

I think that the idea was to see if this patch increases the compilation time when building such a Clang binary.

(Just make sure to use the RelWithDebInfo build type also.)

Yes. Enabling ASAN on a large C++ code base such as Clang is a great way to see compiler performance problems.
Can you post the output of "ninja clean && time ninja clang" before and after applying your patch to the *host* compiler?

Thanks for clarification!

before

real 46m29,670s
user 325m27,488s
sys 6m17,255s

Jun 5 2019, 3:18 AM · Restricted Project, debug-info

Jun 3 2019

NikolaPrica added inline comments to D61062: Keep call site info valid through the backend.
Jun 3 2019, 7:39 AM · Restricted Project, debug-info
NikolaPrica committed rG2d0106a11041: [LiveDebugValues] Close range for previous variable's location when adding… (authored by NikolaPrica).
[LiveDebugValues] Close range for previous variable's location when adding…
Jun 3 2019, 2:46 AM
NikolaPrica committed rL362373: [LiveDebugValues] Close range for previous variable's location when adding….
[LiveDebugValues] Close range for previous variable's location when adding…
Jun 3 2019, 2:46 AM
NikolaPrica closed D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.
Jun 3 2019, 2:46 AM · Restricted Project, debug-info
NikolaPrica added a comment to D61600: [DebugInfo] More precise variable range for stack locations.

Have you tested the performance when compiling Clang with ASAN enabled to make sure we're not accidentally regressing because of the more thorough single-location check?

Jun 3 2019, 2:16 AM · Restricted Project, debug-info
NikolaPrica updated the diff for D61600: [DebugInfo] More precise variable range for stack locations.
  • Rebase.
Jun 3 2019, 2:11 AM · Restricted Project, debug-info

May 29 2019

NikolaPrica added inline comments to D61062: Keep call site info valid through the backend.
May 29 2019, 6:23 AM · Restricted Project, debug-info

May 28 2019

NikolaPrica added a comment to D61061: [MachineFunction] Base support for call site info tracking.
Please provide us with more details about your idea.

When we lower a call we invoke some method to do the lowering to register, frame index etc. The idea would be to extract this code (easier said than done) into its own library and use this API to produce the debug info instead of carrying this information in the MachineFunction.

May 28 2019, 6:00 AM · Restricted Project, debug-info

May 27 2019

NikolaPrica updated the diff for D61600: [DebugInfo] More precise variable range for stack locations.
  • Updated comment (single instruction -> single location)
May 27 2019, 7:03 AM · Restricted Project, debug-info
NikolaPrica updated the diff for D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.

Is this ready to land now?

May 27 2019, 6:55 AM · Restricted Project, debug-info
NikolaPrica committed rG441ad6253130: Test commit (NFC) (authored by NikolaPrica).
Test commit (NFC)
May 27 2019, 6:52 AM
NikolaPrica committed rL361761: Test commit (NFC).
Test commit (NFC)
May 27 2019, 6:48 AM

May 24 2019

NikolaPrica updated the diff for D61600: [DebugInfo] More precise variable range for stack locations.
  • Update comments.
May 24 2019, 9:07 AM · Restricted Project, debug-info
NikolaPrica updated the diff for D61600: [DebugInfo] More precise variable range for stack locations.
  • Represent DbgVariable's single value representation by DebugLocEntry::Value insted of representing it with MachineInstr. Such representation will allow us to produce fragment single value representation (for now it is not supported).
  • Update DwarfDebug::buildLocationList to check if produced list has single entry that is valid throughout whole variable's scope.
May 24 2019, 7:41 AM · Restricted Project, debug-info
NikolaPrica updated the diff for D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.
  • Address comments for test labels.
  • Perform conditional copy for new OutLocs set.
May 24 2019, 4:17 AM · Restricted Project, debug-info

May 23 2019

NikolaPrica added inline comments to D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.
May 23 2019, 9:15 AM · Restricted Project, debug-info
NikolaPrica updated the diff for D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.

-Make sure DBG_VALUEs from the test case occur in different blocks.

May 23 2019, 8:20 AM · Restricted Project, debug-info

May 22 2019

NikolaPrica updated the diff for D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.
  • Update comment
  • Changed label for test check-prefix
May 22 2019, 2:51 AM · Restricted Project, debug-info
NikolaPrica added inline comments to D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.
May 22 2019, 2:36 AM · Restricted Project, debug-info

May 21 2019

NikolaPrica updated the diff for D61600: [DebugInfo] More precise variable range for stack locations.

-Rebase
-Change referenced scope to function scope for variable "b" in fisson-ranges.ll

May 21 2019, 7:34 AM · Restricted Project, debug-info
NikolaPrica added a child revision for D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location: D61600: [DebugInfo] More precise variable range for stack locations.
May 21 2019, 7:33 AM · Restricted Project, debug-info
NikolaPrica added a parent revision for D61600: [DebugInfo] More precise variable range for stack locations: D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.
May 21 2019, 7:33 AM · Restricted Project, debug-info
NikolaPrica removed a child revision for D61600: [DebugInfo] More precise variable range for stack locations: D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.
May 21 2019, 7:33 AM · Restricted Project, debug-info
NikolaPrica added a parent revision for D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location: D61600: [DebugInfo] More precise variable range for stack locations.
May 21 2019, 7:33 AM · Restricted Project, debug-info
NikolaPrica removed a parent revision for D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location: D61600: [DebugInfo] More precise variable range for stack locations.
May 21 2019, 7:33 AM · Restricted Project, debug-info
NikolaPrica added a child revision for D61600: [DebugInfo] More precise variable range for stack locations: D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.
May 21 2019, 7:33 AM · Restricted Project, debug-info
NikolaPrica created D62196: [LiveDebugValues] Close range for previous variable's location when deducing new variable's location.
May 21 2019, 7:30 AM · Restricted Project, debug-info
NikolaPrica added a comment to D61600: [DebugInfo] More precise variable range for stack locations.

Actually I've just produce fix for fisson-ranges.ll that will have better ranges. I'll post it as child patch of this one.

May 21 2019, 4:08 AM · Restricted Project, debug-info
NikolaPrica added a comment to D61600: [DebugInfo] More precise variable range for stack locations.

For the sample code in fisson-range.ll we now generate slightly different IR (few more llvm.dbg.values). With such IR, LLVM generates one block larger range but nevertheless the problem there is different nature and it could be used as a test case for further improvement of LiveDebugValues (value from stack gets loaded into a callee clobberabble register and at the entry of a block we have two variable locations and we choose the one which is inserted later - see LiveDebugvalues::transferDebugValue). I will take a look into that.

May 21 2019, 2:17 AM · Restricted Project, debug-info

May 20 2019

NikolaPrica abandoned D61890: [LiveDebugValues] End variable's range with multiple locations at block entry.

It seems that D61600 is the right way to solve this problem, so I'm abandoning this change.

May 20 2019, 3:55 AM · debug-info

May 16 2019

NikolaPrica added a comment to D61061: [MachineFunction] Base support for call site info tracking.

Maybe it would be better to use a call instruction number? For example, use {id: 1} for first call instruction in MIR stream instead of {bb: 0 , offset: 3}? Or use {bb:0 , ID: 1} for the first instruction in basic block 0?

May 16 2019, 5:28 AM · Restricted Project, debug-info
NikolaPrica updated the diff for D61600: [DebugInfo] More precise variable range for stack locations.

-Take last HistoryMapEntries as a representative single value location.
-Update test explanation.
-Strip uneccessary parts of test.

May 16 2019, 5:20 AM · Restricted Project, debug-info

May 15 2019

NikolaPrica added a comment to D61890: [LiveDebugValues] End variable's range with multiple locations at block entry.

@aprantl @wolfgangp Thanks for your comments! They are really useful for me regardless of this patch being accepted or not.
Before I start addressing them I would like to get to the same point whether this is the right place to address this problem that we try to solve in D61600, D61940 and here.

May 15 2019, 6:26 AM · debug-info

May 14 2019

NikolaPrica added a comment to D61600: [DebugInfo] More precise variable range for stack locations.

I've posted new approach for fixing this problem at https://reviews.llvm.org/D61890. If that approach turns to be better I will abandon this change.

May 14 2019, 5:54 AM · Restricted Project, debug-info
NikolaPrica created D61890: [LiveDebugValues] End variable's range with multiple locations at block entry.
May 14 2019, 5:52 AM · debug-info

May 13 2019

NikolaPrica added inline comments to D61062: Keep call site info valid through the backend.
May 13 2019, 3:44 AM · Restricted Project, debug-info

May 8 2019

NikolaPrica added inline comments to D61600: [DebugInfo] More precise variable range for stack locations.
May 8 2019, 4:08 AM · Restricted Project, debug-info

May 7 2019

NikolaPrica added inline comments to D61600: [DebugInfo] More precise variable range for stack locations.
May 7 2019, 5:32 AM · Restricted Project, debug-info
NikolaPrica added inline comments to D61600: [DebugInfo] More precise variable range for stack locations.
May 7 2019, 1:03 AM · Restricted Project, debug-info

May 6 2019

NikolaPrica created D61600: [DebugInfo] More precise variable range for stack locations.
May 6 2019, 8:16 AM · Restricted Project, debug-info

Apr 25 2019

NikolaPrica added a comment to D60716: [DwarfDebug] Dump call site debug info into DWARF.

@dstenb Thank you for your comments! We will address them!

Apr 25 2019, 9:13 AM · Restricted Project, debug-info
NikolaPrica added inline comments to D61061: [MachineFunction] Base support for call site info tracking.
Apr 25 2019, 9:13 AM · Restricted Project, debug-info

Apr 24 2019

NikolaPrica added inline comments to D60715: [ISEL][X86] Tracking of registers that forward call arguments.
Apr 24 2019, 5:44 AM · Restricted Project, debug-info
NikolaPrica added inline comments to D60715: [ISEL][X86] Tracking of registers that forward call arguments.
Apr 24 2019, 1:44 AM · Restricted Project, debug-info

Apr 23 2019

NikolaPrica added a comment to D60715: [ISEL][X86] Tracking of registers that forward call arguments.

Thanks for the comments! I've addressed most of them. This patch will be split on 3 parts once we decide how to address comment about updating call site in TargetInstrInfo.

Apr 23 2019, 7:08 AM · Restricted Project, debug-info

Apr 17 2019

NikolaPrica added a comment to D60715: [ISEL][X86] Tracking of registers that forward call arguments.

@bjope @aprantl Thank you for your comments!

Apr 17 2019, 9:01 AM · Restricted Project, 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 · Restricted Project, 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