Page MenuHomePhabricator
Feed Advanced Search

Today

vsk added inline comments to D34499: Expose __gcov_flush for parity with libgcov in the gcc project.
Wed, Feb 20, 11:14 AM · Restricted Project, Restricted Project

Yesterday

vsk committed rGa0b972547978: [llvm-cov] Add support for gcov --hash-filenames option (authored by vsk).
[llvm-cov] Add support for gcov --hash-filenames option
Tue, Feb 19, 12:45 PM
vsk accepted D58370: [llvm-cov] Add support for gcov --hash-filenames option..

Hi @iignatev, thanks for the patch. LGTM.

Tue, Feb 19, 10:49 AM · Restricted Project

Fri, Feb 15

vsk committed rG5f5cac3ae29d: [CodeExtractor] Do not lift lifetime.end markers for region inputs (authored by vsk).
[CodeExtractor] Do not lift lifetime.end markers for region inputs
Fri, Feb 15, 10:47 AM
vsk committed rG47a0c9b69cd7: [HotColdSplit] Schedule splitting late to fix perf regression (authored by vsk).
[HotColdSplit] Schedule splitting late to fix perf regression
Fri, Feb 15, 10:47 AM

Thu, Feb 14

vsk updated the diff for D58258: [HotColdSplit] Schedule splitting late to fix perf regression.
  • Add a NewPM LTO pre-link test.
  • Schedule splitting at the same point in the old & new PM's.
Thu, Feb 14, 5:24 PM · Restricted Project
vsk updated subscribers of D58258: [HotColdSplit] Schedule splitting late to fix perf regression.
Thu, Feb 14, 4:47 PM · Restricted Project
vsk added a comment to D57805: [HotColdSplit] Move splitting after instrumented PGO use.

... I will try moving the splitting to after the ThinLTO backend (post-thinlink) inlining and see what effect there is. Theoretically we should be getting more accurate importing/inlining, it would be good to understand where this is going wrong if not!

Thu, Feb 14, 3:37 PM · Restricted Project
vsk accepted D58259: Fixed failure on Darwin due to r354064.

Thanks, lgtm.

Thu, Feb 14, 3:36 PM · Restricted Project
vsk created D58258: [HotColdSplit] Schedule splitting late to fix perf regression.
Thu, Feb 14, 3:27 PM · Restricted Project
vsk created D58253: [CodeExtractor] Do not lift lifetime.end markers for region inputs.
Thu, Feb 14, 2:07 PM · Restricted Project
vsk added a comment to D57834: [CodeExtractor] Only lift lifetime markers present in the extraction region.

In this example there are two possible entry points in region, so it can't be extracted (first block in region should dominate the others). Maybe there are better examples of issue?

Thu, Feb 14, 2:07 PM · Restricted Project
vsk updated subscribers of D57986: [ProfileData] Remove non-determinism: Change DenseMap to MapVector.

I think this could roughly double the memory utilization of the writer, which might be problematic because the number of records to write can be high. (@dblaikie did some work on reducing memory usage in this area, he might have hard data about this.)

Thu, Feb 14, 10:46 AM · Restricted Project

Wed, Feb 13

vsk added a comment to D57834: [CodeExtractor] Only lift lifetime markers present in the extraction region.

@kachkov98 @davidxl apologies, but this patch is still not correct.

Wed, Feb 13, 6:20 PM · Restricted Project
vsk accepted D58156: [Sanitizer] On Darwin `__sanitizer_print_stack_trace` only prints topmost frame.

Thanks, LGTM. Could you wait for another +1? It's been a while since I've looked at this code, and I think another review would help make sure this is safe.

Wed, Feb 13, 1:08 PM · Restricted Project, Restricted Project
vsk committed rG4b0cc9a7c80f: [CodeExtractor] Only lift lifetime markers present in the extraction region (authored by vsk).
[CodeExtractor] Only lift lifetime markers present in the extraction region
Wed, Feb 13, 11:56 AM

Mon, Feb 11

vsk accepted D58071: Fix auto-upgrade for the new parameter to llvm.objectsize.

Thanks, lgtm. Steven?

Mon, Feb 11, 1:18 PM · Restricted Project
vsk added a comment to D57805: [HotColdSplit] Move splitting after instrumented PGO use.
In D57805#1393416, @vsk wrote:

@tejohnson have you had a chance to evaluate performance with IR-PGO + splitting enabled?

I have one data point, more below.

Our internal CI shows performance regressions on SPEC/CINT2000 with FE-PGO + splitting enabled. Allowing inlining of split functions reduces the perf regression,

This is controlled by the MinSize attribute, right?

Mon, Feb 11, 12:37 PM · Restricted Project
vsk added a comment to D57265: [PM/CC1] Add -f[no-]split-cold-code CC1 options to toggle splitting.

I'd prefer not adding this kind of state to PassBuilder. SplitColdCode is soemthing that refers to the construction of one particular pipeline, not to pipeline-building in general. It should be an argument passed down through the build*Pipeline calls.

Mon, Feb 11, 11:41 AM · Restricted Project
vsk added a comment to D57805: [HotColdSplit] Move splitting after instrumented PGO use.

@tejohnson have you had a chance to evaluate performance with IR-PGO + splitting enabled?

Mon, Feb 11, 11:13 AM · Restricted Project

Fri, Feb 8

vsk retitled D57985: [test-suite] Add cmake option to use IR PGO (TEST_SUITE_USE_IR_PGO) from Add cmake option to use IR PGO (TEST_SUITE_USE_IR_PGO) to [test-suite] Add cmake option to use IR PGO (TEST_SUITE_USE_IR_PGO).
Fri, Feb 8, 4:17 PM · Restricted Project
vsk created D57985: [test-suite] Add cmake option to use IR PGO (TEST_SUITE_USE_IR_PGO).
Fri, Feb 8, 4:17 PM · Restricted Project
Herald added a project to D56761: Add a parameter to the objectsize intrinsic that controls whether to evaluate size dynamically: Restricted Project.

I think this breaks bitcode backwards compatibility:

Fri, Feb 8, 1:21 PM · Restricted Project
vsk committed rG0e5dd512aae0: [CodeExtractor] Restore outputs after creating exit stubs (authored by vsk).
[CodeExtractor] Restore outputs after creating exit stubs
Fri, Feb 8, 12:50 PM
vsk accepted D57957: [NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value..

Thanks, lgtm.

Fri, Feb 8, 12:08 PM · Restricted Project
vsk accepted D57919: [CodeExtractor] Restore outputs after creating exit stubs.

Thanks for doing this! LGTM with a simple change.

Fri, Feb 8, 10:56 AM · Restricted Project
vsk added inline comments to D57957: [NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value..
Fri, Feb 8, 10:03 AM · Restricted Project
vsk added reviewers for D57957: [NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value.: fhahn, davidxl.
Fri, Feb 8, 10:03 AM · Restricted Project

Thu, Feb 7

vsk added a comment to D57919: [CodeExtractor] Restore outputs after creating exit stubs.

Thanks! This mostly looks good, and I believe it resolves llvm.org/PR40455.

Thu, Feb 7, 12:06 PM · Restricted Project
vsk accepted D57900: [HotColdSplit] With PGO add profile entry metadata to split cold function.

Thanks, lgtm.

Thu, Feb 7, 9:48 AM · Restricted Project

Wed, Feb 6

vsk accepted D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it.

LGTM, but, please wait for a +1 from someone more familiar with AssumptionCache before committing.

Wed, Feb 6, 3:30 PM · Restricted Project
vsk updated the diff for D57265: [PM/CC1] Add -f[no-]split-cold-code CC1 options to toggle splitting.

Rebase.

Wed, Feb 6, 2:16 PM · Restricted Project
vsk added reviewers for D57265: [PM/CC1] Add -f[no-]split-cold-code CC1 options to toggle splitting: fedor.sergeev, philip.pfaffe.

Thanks @hiraditya. I'd also like to get a +1 from someone who's worked on the NewPM infrastructure extensively, just to make sure those changes look ok.

Wed, Feb 6, 2:09 PM · Restricted Project
vsk added a comment to D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it.

@sdmitriev thanks for the patch!

Wed, Feb 6, 2:04 PM · Restricted Project
vsk created D57834: [CodeExtractor] Only lift lifetime markers present in the extraction region.
Wed, Feb 6, 11:39 AM · Restricted Project

Tue, Feb 5

vsk accepted D57805: [HotColdSplit] Move splitting after instrumented PGO use.

Thanks, LGTM.

Tue, Feb 5, 8:26 PM · Restricted Project
vsk committed rGbd94b4287c9e: [HotColdSplit] Do not split out `resume` instructions (authored by vsk).
[HotColdSplit] Do not split out `resume` instructions
Tue, Feb 5, 3:39 PM

Mon, Feb 4

vsk added reviewers for D57722: [Clang][NCF] Sanitizer options: helpers to check if {Kernel,Hardware}ASan is enabled: eugenis, kcc.
Mon, Feb 4, 4:32 PM · Restricted Project
vsk accepted D57711: [Sanitizers] UBSan unreachable incompatible with Kernel ASan.

LGTM, thanks. It might make sense to add a predicate to SanitizerSet to make it easier to check when ASan is enabled, either pre-commit or as a follow-up.

Mon, Feb 4, 2:09 PM · Restricted Project, Restricted Project

Fri, Feb 1

vsk accepted D57489: [ASan] Do not instrument other runtime functions with `__asan_handle_no_return`.

Thanks, lgtm!

Fri, Feb 1, 12:38 PM · Restricted Project, Restricted Project, Restricted Project
vsk added a comment to D57265: [PM/CC1] Add -f[no-]split-cold-code CC1 options to toggle splitting.

Ping.

Fri, Feb 1, 10:30 AM · Restricted Project

Thu, Jan 31

vsk added a comment to D57489: [ASan] Do not instrument other runtime functions with `__asan_handle_no_return`.

Looks reasonable to me.

Thu, Jan 31, 11:04 AM · Restricted Project, Restricted Project, Restricted Project

Tue, Jan 29

vsk accepted D57278: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls.

LGTM, thanks!

Tue, Jan 29, 2:03 PM · Restricted Project

Mon, Jan 28

vsk added a comment to D57278: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls.

Is it necessary to remove visitation of 'noreturn' call sites from ASan? I'd expect that to break non-C frontends which emit noreturn calls (rust/swift?).

Mon, Jan 28, 5:41 PM · Restricted Project
vsk added inline comments to D57190: [MC] Teach the MachO object writer about N_FUNC_COLD.
Mon, Jan 28, 9:14 AM

Fri, Jan 25

vsk closed D57190: [MC] Teach the MachO object writer about N_FUNC_COLD.
Fri, Jan 25, 4:57 PM
vsk updated the diff for D57265: [PM/CC1] Add -f[no-]split-cold-code CC1 options to toggle splitting.
  • Fix a think-o in a comment.
Fri, Jan 25, 4:41 PM · Restricted Project
vsk added inline comments to D57190: [MC] Teach the MachO object writer about N_FUNC_COLD.
Fri, Jan 25, 4:33 PM
vsk created D57265: [PM/CC1] Add -f[no-]split-cold-code CC1 options to toggle splitting.
Fri, Jan 25, 4:30 PM · Restricted Project
vsk added a comment to D57050: [CodeGenPrepare] Handle all debug calls in dupRetToEnableTailCallOpts().

I see a minor issue in the test, but the patch looks great to me otherwise. Thanks!

Fri, Jan 25, 9:56 AM

Thu, Jan 24

vsk added a comment to D56624: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls.
In D56624#1370607, @yln wrote:

Maybe the frontend should insert __asan_handle_noreturn whenever ASan is enabled, and then ASan would not care about the attribute? I'd like to avoid having this logic in two places.

+1 for this. @vsk Can you sign off on this design?

Thu, Jan 24, 7:09 PM · Restricted Project
vsk added a comment to D57190: [MC] Teach the MachO object writer about N_FUNC_COLD.
In D57190#1370535, @pcc wrote:

Interesting, what's the advantage of this over doing something like creating a __cold section in the __TEXT segment?

Thu, Jan 24, 6:49 PM
vsk updated the diff for D57190: [MC] Teach the MachO object writer about N_FUNC_COLD.

Per @pcc's suggestion, add basic AsmParser support for the .cold directive.

Thu, Jan 24, 6:49 PM
vsk added a reviewer for D57190: [MC] Teach the MachO object writer about N_FUNC_COLD: mtrent.

+ Mike, who's touched nm recently.

Thu, Jan 24, 4:23 PM
vsk added a comment to D57082: [HotColdSplit] Move splitting earlier in the pipeline.

I relaxed the test in r352138, and think that should address the issue.

Thu, Jan 24, 4:21 PM
vsk added a comment to D56624: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls.

Wouldn’t it be preferable to unpoison the stack inside of maybe_longjmp, once the opaque condition can be checked?

Sure, but that's not always possible. That's why we have interceptors.

Thu, Jan 24, 4:19 PM · Restricted Project
vsk added a comment to D57082: [HotColdSplit] Move splitting earlier in the pipeline.

Sorry about that, taking a look now

Thu, Jan 24, 4:08 PM
vsk added a comment to D56624: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls.

Because "expect_noreturn" calls are allowed to return, the compiler must behave as they could. In particular, this means that unpoisoning the stack before expect_noreturn calls (given the current semantics) is premature.

I don't think that's true. A hypothetical function

maybe_longjmp(jmp_buf env)

that checks an opaque condition needs stack unpoisoning before the call, in the absense of a better solution.

Thu, Jan 24, 2:52 PM · Restricted Project
vsk created D57190: [MC] Teach the MachO object writer about N_FUNC_COLD.
Thu, Jan 24, 1:54 PM
vsk added a comment to D56624: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls.
In D56624#1369940, @yln wrote:

Note that all of this currently only matters when compiling with -fsanitize=unreachable. The following discussion is within the context of the current implementation: UBSan removes the noreturn so it can instrument unreachable without the added instrumentation being optimized away. Maybe we should take a step back and ask if that is the right approach at all?

In D56624#1369795, @vsk wrote:

Because "expect_noreturn" calls are allowed to return, the compiler must behave as they could. In particular, this means that unpoisoning the stack before expect_noreturn calls (given the current semantics) is premature.

Put another way, a frontend author may (understandably, but mistakenly!) attach expect_noreturn to calls which they expect to be cold.

I think about this differently. Yes, most noreturn functions are also cold, e.g., abort, but not necessarily, e.g., calls to longjmp do not necessarily have to be. Why would it be okay to attach expect_noreturn instead of cold?

Thu, Jan 24, 1:03 PM · Restricted Project
vsk added a comment to D56624: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls.
In D56624#1369767, @yln wrote:
In D56624#1369635, @vsk wrote:

What are the advantages of a generalized expect_noreturn attribute, vs. a narrower attribute or intrinsic? The expect_noreturn semantics do not provide strong guarantees, and are not really orthogonal from the pre-existing cold attribute.

@eugenis Do you want to chime in here?
I think they convey different meanings even if their treatment by the optimizer is similar. The cold attribute says nothing about whether or not a function is expected to return.

Thu, Jan 24, 11:21 AM · Restricted Project
vsk added a comment to D56624: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls.

What are the advantages of a generalized expect_noreturn attribute, vs. a narrower attribute or intrinsic? The expect_noreturn semantics do not provide strong guarantees, and are not really orthogonal from the pre-existing cold attribute. In particular, expect_noreturn doesn't even seem strong enough to allow ASan to unpoison its stack.

Thu, Jan 24, 10:29 AM · Restricted Project

Wed, Jan 23

vsk created D57125: [HotColdSplit] Introduce a cost model to control splitting behavior.
Wed, Jan 23, 3:48 PM
vsk updated the diff for D57082: [HotColdSplit] Move splitting earlier in the pipeline.
Wed, Jan 23, 12:49 PM
vsk added inline comments to D57082: [HotColdSplit] Move splitting earlier in the pipeline.
Wed, Jan 23, 12:49 PM
vsk added inline comments to D57082: [HotColdSplit] Move splitting earlier in the pipeline.
Wed, Jan 23, 11:46 AM
vsk updated the diff for D57082: [HotColdSplit] Move splitting earlier in the pipeline.
  • Fix the pipeline issue in the old PM pointed out by Teresa. Add a test for it.
Wed, Jan 23, 11:46 AM
vsk accepted D57092: [HotColdSplitting] Get DT and PDT from the pass manager..

Thanks! CTMark results look great, LGTM.

Wed, Jan 23, 8:25 AM

Tue, Jan 22

vsk created D57082: [HotColdSplit] Move splitting earlier in the pipeline.
Tue, Jan 22, 8:12 PM
vsk added a comment to D57050: [CodeGenPrepare] Handle all debug calls in dupRetToEnableTailCallOpts().

Thanks for the patch. Could you please reduce the test case a bit further? There are kilobytes of debug info metadata here which don't appear necessary for reproducing the problem.

Tue, Jan 22, 11:15 AM
Herald updated subscribers of D50593: ConstantMerge: merge common initial sequences.
Tue, Jan 22, 11:14 AM

Jan 17 2019

vsk added a comment to D56045: [CodeExtractor] Emit lifetime markers around reloads of outputs.

Gentle ping (this isn't urgent, but it seems nice to have).

Jan 17 2019, 12:32 PM
vsk added a comment to D56865: [MergeFunc] Allow merging identical vararg functions using aliases.
In D56865#1362011, @rnk wrote:

Crazy idea: use musttail (only some targets support it) to make this work. Of course, first, make it correct.

Jan 17 2019, 11:53 AM
vsk created D56865: [MergeFunc] Allow merging identical vararg functions using aliases.
Jan 17 2019, 10:13 AM

Jan 16 2019

vsk created D56815: [FunctionComparator] Consider tail call kinds.
Jan 16 2019, 3:14 PM
vsk added a comment to D56764: handle invokes like calls for sample profile data.

(Looks reasonable to me. I haven't really touched this code, so it'd help if another review could +1 the change.)

Jan 16 2019, 2:50 PM
vsk added inline comments to D56764: handle invokes like calls for sample profile data.
Jan 16 2019, 12:17 PM

Jan 11 2019

vsk added a comment to D56587: Introduce DW_OP_LLVM_convert.

Thanks for the patch.

Jan 11 2019, 9:16 AM · debug-info

Jan 10 2019

vsk created D56574: [MergeFunc] Erase unused duplicate functions if they are discardable.
Jan 10 2019, 7:01 PM

Jan 7 2019

vsk added a comment to D56425: [BreakpointList] Simplify/modernize BreakpointList (NFC).

Looks like a nice/reasonable cleanup, thanks!

Jan 7 2019, 9:04 PM
vsk updated subscribers of D56045: [CodeExtractor] Emit lifetime markers around reloads of outputs.

+ @gyiu, as I believe he's worked on the partial inliner.

Jan 7 2019, 2:40 PM

Jan 3 2019

vsk added a comment to D55967: [CodeExtractor] Do not extract unsafe lifetime markers.

Ping.

Jan 3 2019, 3:20 PM

Dec 31 2018

vsk added a comment to D56151: [DebugInfo] PR40010: Avoid register coalesing altering DBG_VALUE valuations.

Thanks for working on this.

Dec 31 2018, 2:33 PM
vsk added inline comments to D55987: [CodeGen] Skip over dbg-instr in twoaddr pass.
Dec 31 2018, 11:32 AM

Dec 21 2018

vsk updated the diff for D56045: [CodeExtractor] Emit lifetime markers around reloads of outputs.
  • Tighten up the tests a bit.
Dec 21 2018, 8:43 PM
vsk added a child revision for D55967: [CodeExtractor] Do not extract unsafe lifetime markers: D56045: [CodeExtractor] Emit lifetime markers around reloads of outputs.
Dec 21 2018, 8:39 PM
vsk created D56045: [CodeExtractor] Emit lifetime markers around reloads of outputs.
Dec 21 2018, 8:39 PM
vsk added a comment to D55997: Add support for LLVM profile for NetBSD.

Thanks, this patch lgtm.

Dec 21 2018, 8:36 PM · Restricted Project
vsk added a comment to D55987: [CodeGen] Skip over dbg-instr in twoaddr pass.

Thanks for the patch!

Dec 21 2018, 8:34 PM
vsk added a reviewer for D55987: [CodeGen] Skip over dbg-instr in twoaddr pass: debug-info.
Dec 21 2018, 1:58 PM
vsk added inline comments to D55967: [CodeExtractor] Do not extract unsafe lifetime markers.
Dec 21 2018, 12:34 PM
vsk updated the diff for D55967: [CodeExtractor] Do not extract unsafe lifetime markers.
Dec 21 2018, 12:34 PM
vsk created D56019: [IR] Add Instruction::isLifetimeStartOrEnd, NFC.
Dec 21 2018, 12:16 PM
vsk planned changes to D55967: [CodeExtractor] Do not extract unsafe lifetime markers.

(Marking this WIP while I address @davidxl 's feedback.)

Dec 21 2018, 11:57 AM

Dec 20 2018

vsk added inline comments to D55967: [CodeExtractor] Do not extract unsafe lifetime markers.
Dec 20 2018, 5:45 PM
vsk created D55967: [CodeExtractor] Do not extract unsafe lifetime markers.
Dec 20 2018, 3:45 PM

Dec 18 2018

vsk updated the diff for D55843: [CodeGen] Handle mixed-width ops in mixed-sign mul-with-overflow lowering.
  • Simplify logic per Eli's review feedback.
Dec 18 2018, 12:06 PM
vsk created D55843: [CodeGen] Handle mixed-width ops in mixed-sign mul-with-overflow lowering.
Dec 18 2018, 11:08 AM

Dec 17 2018

vsk added a comment to D55760: [ADT] IntervalMap: add contains(a, b) method.

I think it'll be really useful to have this helper around. Thanks, lgtm with the name change!

Dec 17 2018, 9:36 AM
vsk accepted D55761: lldb-test ir-memory-map: Use IntervalMap::contains.

Thanks, lgtm!

Dec 17 2018, 9:10 AM