Page MenuHomePhabricator
Feed Advanced Search

Today

tejohnson added a comment to D104798: [WPD] Don't optimize calls more than once.

WPD currently assumes that each vtable load corresponds to one virtual call. However, with -fstrict-vtable-pointers this may not be true.

Wed, Jun 23, 11:13 AM · Restricted Project
tejohnson added a comment to D36850: [ThinLTO] Add norecurse function attribute propagation.

Sorry for not being responsive. I've been out of office but will be back Monday.

No worries!

Wed, Jun 23, 10:52 AM · Restricted Project
tejohnson added a comment to D104431: [lld] Add lto-cspgo-warn-mismatch option for COFF.

Thanks Teresa for the comments.

For the first question, clang uses the -Wno-backend-plugin option to ignore the warnings.
This is mentioned in the How to build clang and LLVM with PGO user guide.

I haven't figured out how this correlates to the internal -no-pgo-warn-mismatch option though. Any tips?

Wed, Jun 23, 7:51 AM · Restricted Project

Yesterday

tejohnson added a comment to D104230: [gold] Release input files in claim_file.

Why aren't they being released at the end of runLTO (via the RAII PluginInputFile objects saved in the HandleToInputFile map) for both thin and regular LTO? I don't understand how this change is correct - we are saving the fd and handle here for use later in runLTO for both thin and regular LTO, but you will be releasing them early for regular lto.

They are being released, but we can't have that many fds open all at the same time. ld.bfd will call claim_file hundreds of times per file (depending on the file) and we end up with thousands of open fds.

Tue, Jun 22, 11:30 AM · Restricted Project
tejohnson added a comment to D104431: [lld] Add lto-cspgo-warn-mismatch option for COFF.

A few high level comments/questions based on the discussion:

  • Is there a clang option? I thought there was but can't find one now. We should probably take the same approach here for the linker (external option vs use of the internal llvm option, similar name).
  • Since this is affecting regular PGO mismatches (via NoPGOWarnMismatch) and not just CSPGO the name should presumably not mention the "CS" part.
  • Please add for ELF as well in the same patch - should be straightfoward.
  • Tests needed.
Tue, Jun 22, 11:14 AM · Restricted Project

Mon, Jun 21

tejohnson added a comment to D104230: [gold] Release input files in claim_file.

Why aren't they being released at the end of runLTO (via the RAII PluginInputFile objects saved in the HandleToInputFile map) for both thin and regular LTO? I don't understand how this change is correct - we are saving the fd and handle here for use later in runLTO for both thin and regular LTO, but you will be releasing them early for regular lto.

Mon, Jun 21, 12:03 PM · Restricted Project
tejohnson added a comment to D104431: [lld] Add lto-cspgo-warn-mismatch option for COFF.

Does the same issue exist on ELF?

Mon, Jun 21, 11:09 AM · Restricted Project

Fri, Jun 18

tejohnson added a comment to D36850: [ThinLTO] Add norecurse function attribute propagation.
Fri, Jun 18, 8:47 AM · Restricted Project

Sun, Jun 13

tejohnson accepted D104202: [NFC] Calculate getTerminator only when necessary.

lgtm

Sun, Jun 13, 5:49 PM · Restricted Project

Mon, Jun 7

tejohnson accepted D103048: [IR] make -stack-alignment= into a module attr.

lgtm

Mon, Jun 7, 11:16 PM · Restricted Project, Restricted Project

Sun, Jun 6

tejohnson added a comment to D36850: [ThinLTO] Add norecurse function attribute propagation.

@tejohnson Do you know more about the status of this patch/@ncharlie? I'd like to help push this forward and can take over if they're no longer available.

The patch has been dormant since @ncharlie hasn't been active in LLVM for awhile, and no one else has had a chance to pick it up. Would be great if you would like to take it over and push it forward.

Can do, I'll send out an updated revision. Should I directly edit this diff or create a new one linked back?

Sun, Jun 6, 6:36 AM · Restricted Project

Fri, Jun 4

tejohnson updated subscribers of D34803: [LTO] Remove values from non-prevailing comdats.
Fri, Jun 4, 8:26 AM · Restricted Project

Thu, Jun 3

tejohnson committed rGd0ee8b64ecf3: [LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch (authored by tejohnson).
[LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch
Thu, Jun 3, 2:25 PM
tejohnson closed D103579: [LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch.
Thu, Jun 3, 2:25 PM · Restricted Project
tejohnson updated the diff for D103579: [LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch.

Combine check prefixes as suggested

Thu, Jun 3, 2:24 PM · Restricted Project
tejohnson added inline comments to D103579: [LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch.
Thu, Jun 3, 12:33 PM · Restricted Project
tejohnson updated the diff for D103579: [LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch.

Add Cuda test

Thu, Jun 3, 12:33 PM · Restricted Project
tejohnson added inline comments to D103579: [LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch.
Thu, Jun 3, 10:51 AM · Restricted Project
tejohnson added inline comments to D34803: [LTO] Remove values from non-prevailing comdats.
Thu, Jun 3, 8:19 AM · Restricted Project

Wed, Jun 2

tejohnson added a comment to D103048: [IR] make -stack-alignment= into a module attr.

Curiously, using ModFlagBehavior::Error doesn't error if one of two modules being linked together doesn't have such a module level attribute.

Wed, Jun 2, 10:42 PM · Restricted Project, Restricted Project
tejohnson added a comment to D36850: [ThinLTO] Add norecurse function attribute propagation.

@tejohnson Do you know more about the status of this patch/@ncharlie? I'd like to help push this forward and can take over if they're no longer available.

Wed, Jun 2, 6:03 PM · Restricted Project
tejohnson added inline comments to D103579: [LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch.
Wed, Jun 2, 5:36 PM · Restricted Project
tejohnson requested review of D103579: [LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch.
Wed, Jun 2, 5:33 PM · Restricted Project

Tue, Jun 1

tejohnson added a comment to D103120: LTO: Export functions referenced by non-canonical CFI jump tables.

Adding another possible reviewer since @eugenis added these data structures (D34168). With the caveat that I'm not very familiar at all with this CFI transformation, the patch looks ok to me after looking at how cfiFunctionDecls is used. However it would be great to get a review from either @pcc or @eugenis.

Tue, Jun 1, 11:23 AM · Restricted Project
tejohnson added a reviewer for D103120: LTO: Export functions referenced by non-canonical CFI jump tables: eugenis.
Tue, Jun 1, 11:21 AM · Restricted Project

Tue, May 25

tejohnson committed rGd35fe04fa35a: [LTT] Handle merged llvm.assume when dropping type tests (authored by tejohnson).
[LTT] Handle merged llvm.assume when dropping type tests
Tue, May 25, 5:02 PM
tejohnson closed D103073: [LTT] Handle merged llvm.assume when dropping type tests.
Tue, May 25, 5:02 PM · Restricted Project
tejohnson added reviewers for D103073: [LTT] Handle merged llvm.assume when dropping type tests: MaskRay, wmi.
Tue, May 25, 1:24 PM · Restricted Project
tejohnson accepted D103043: [Internalize] Rename instead of removal if a to-be-internalized comdat has more than one member.

lgtm

Tue, May 25, 10:55 AM · Restricted Project

Mon, May 24

tejohnson requested review of D103073: [LTT] Handle merged llvm.assume when dropping type tests.
Mon, May 24, 10:06 PM · Restricted Project
tejohnson added a comment to D103043: [Internalize] Rename instead of removal if a to-be-internalized comdat has more than one member.

This seems like a reasonable approach to me. Couple minor comments below. Hoping others can take a look in case I am missing anything.

Mon, May 24, 1:48 PM · Restricted Project

May 21 2021

tejohnson accepted D102742: [IR] make stack-protector-guard-* flags into module attrs.

lgtm

May 21 2021, 2:54 PM · Restricted Project, Restricted Project
tejohnson added inline comments to D102742: [IR] make stack-protector-guard-* flags into module attrs.
May 21 2021, 2:52 PM · Restricted Project, Restricted Project
tejohnson added inline comments to D102742: [IR] make stack-protector-guard-* flags into module attrs.
May 21 2021, 2:17 PM · Restricted Project, Restricted Project
tejohnson added a comment to D102742: [IR] make stack-protector-guard-* flags into module attrs.
  • upgrade module merge strategy to Error

Probably want a test using llvm-link or llvm-lto to check this behavior (that alike flags are getting propagated as expected and that conflicting ones error)

Not many tests under llvm/test/LTO or llvm/test/ThinLTO use llvm-link; is there a more appropriate subdir for such a test for conflicting module attributes?

May 21 2021, 1:54 PM · Restricted Project, Restricted Project
tejohnson added a comment to D102742: [IR] make stack-protector-guard-* flags into module attrs.
  • upgrade module merge strategy to Error
May 21 2021, 1:09 PM · Restricted Project, Restricted Project
tejohnson added a comment to D102742: [IR] make stack-protector-guard-* flags into module attrs.

Obviously needs work/cleanup, changes to x86, and tests, but posting for early feedback about module level attributes vs function level attributes, or possibly something else. I tested this quickly with thin LTO of the Linux kernel and it worked.

May 21 2021, 8:52 AM · Restricted Project, Restricted Project
tejohnson accepted D99683: [HIP] Support ThinLTO.

lgtm

May 21 2021, 8:29 AM · Restricted Project, Restricted Project

May 18 2021

tejohnson added a comment to D101553: [Loads] Skip non load/store instructions when finding available load.

ping

May 18 2021, 9:49 AM · Restricted Project
tejohnson accepted D102594: [NFCI] Move DEBUG_TYPE definition below #include of headers.

lgtm. this seems fine to me, but presumably we would have a compile error if there was ever a conflict in practice with one of these files?

May 18 2021, 8:25 AM · Restricted Project

May 12 2021

tejohnson added inline comments to D99683: [HIP] Support ThinLTO.
May 12 2021, 7:26 AM · Restricted Project, Restricted Project
tejohnson added a comment to D99683: [HIP] Support ThinLTO.

To do what I suggested in the prior comment, you'd probably want to add a new index-wide flag (since we don't read IR in the thin link). See for example how EnableSplitLTOUnit is set and used. You could add a flag like ForceImportAll or something like that. Then you don't necessarily even need to bump up the importing threshold or add the new import-noinline flag. Just key off of that in the importer to try to force import everything. If something cannot be imported, fail with a clear error.

will do

May 12 2021, 6:31 AM · Restricted Project, Restricted Project

May 9 2021

tejohnson committed rG220f6e5271f2: [SimplifyCFG] Ignore ephemeral values when counting insts for threading (authored by tejohnson).
[SimplifyCFG] Ignore ephemeral values when counting insts for threading
May 9 2021, 7:09 PM
tejohnson closed D101494: [SimplifyCFG] Ignore ephemeral values when counting insts for threading.
May 9 2021, 7:08 PM · Restricted Project
tejohnson updated the diff for D101494: [SimplifyCFG] Ignore ephemeral values when counting insts for threading.

Address comment

May 9 2021, 7:06 PM · Restricted Project
tejohnson added a comment to D101494: [SimplifyCFG] Ignore ephemeral values when counting insts for threading.

LGTM, though personally I'd keep the current value of the limit and change the condition to Size++ > MaxSmallBlockSize instead (using post-increment instead of pre-increment). I think that should retain the behavior. I'm okay either way though.

May 9 2021, 7:06 PM · Restricted Project

May 4 2021

tejohnson updated the diff for D101494: [SimplifyCFG] Ignore ephemeral values when counting insts for threading.

Address comments

May 4 2021, 6:35 PM · Restricted Project
tejohnson added inline comments to D101494: [SimplifyCFG] Ignore ephemeral values when counting insts for threading.
May 4 2021, 6:35 PM · Restricted Project
tejohnson updated the diff for D101553: [Loads] Skip non load/store instructions when finding available load.

Update patch as discussed, to skip a larger number of non ld/st instructions

May 4 2021, 11:48 AM · Restricted Project
tejohnson retitled D101553: [Loads] Skip non load/store instructions when finding available load from [Loads] Ignore type test assume sequences inserted for devirtualization to [Loads] Skip non load/store instructions when finding available load.
May 4 2021, 11:48 AM · Restricted Project
tejohnson added inline comments to D101553: [Loads] Skip non load/store instructions when finding available load.
May 4 2021, 11:47 AM · Restricted Project

May 3 2021

tejohnson committed rGea817d79be26: [SimplifyCFG] Look for control flow changes instead of side effects. (authored by tejohnson).
[SimplifyCFG] Look for control flow changes instead of side effects.
May 3 2021, 1:32 PM
tejohnson closed D101507: [SimplifyCFG] Look for control flow changes instead of side effects..
May 3 2021, 1:32 PM · Restricted Project

Apr 30 2021

tejohnson updated the diff for D101494: [SimplifyCFG] Ignore ephemeral values when counting insts for threading.

Compute ephemeral values on per-BB basis when needed

Apr 30 2021, 2:35 PM · Restricted Project
tejohnson retitled D101507: [SimplifyCFG] Look for control flow changes instead of side effects. from [SimplifyCFG] Ignore llvm.assume when looking for side effects to [SimplifyCFG] Look for control flow changes instead of side effects..
Apr 30 2021, 8:24 AM · Restricted Project
tejohnson updated the diff for D101507: [SimplifyCFG] Look for control flow changes instead of side effects..

Update test

Apr 30 2021, 8:23 AM · Restricted Project
tejohnson added a comment to D101507: [SimplifyCFG] Look for control flow changes instead of side effects..

LGTM, summary needs an update though.

Apr 30 2021, 8:23 AM · Restricted Project

Apr 29 2021

tejohnson added a comment to D101553: [Loads] Skip non load/store instructions when finding available load.

Not a big fan of this -- this is effectively whitelisting a specific pattern, and doesn't generalize.

For this code, there are two limits of interest: The total number of instructions we look at, and the number of alias-analysis queries we perform. Currently we limit both through a small number of total instructions. However, the only expensive part, and what needs to be aggressively limited, is the number of alias analysis queries.

Apr 29 2021, 8:54 PM · Restricted Project
tejohnson updated the diff for D101507: [SimplifyCFG] Look for control flow changes instead of side effects..

Address comments.

Apr 29 2021, 3:06 PM · Restricted Project
tejohnson added a comment to D101507: [SimplifyCFG] Look for control flow changes instead of side effects..

I believe you're looking for isGuaranteedToTransferExecutionToSuccessor() here. We don't actually care whether there are side-effects, it only matters whether we are guaranteed to reach the UB.

Apr 29 2021, 3:05 PM · Restricted Project
tejohnson requested review of D101553: [Loads] Skip non load/store instructions when finding available load.
Apr 29 2021, 10:32 AM · Restricted Project
tejohnson added a comment to D101494: [SimplifyCFG] Ignore ephemeral values when counting insts for threading.

Unless I'm missing something, this has a cache invalidation issue and will likely lead to non-deterministic builds. Say you have a dead block with an assume, which gets added to ephemeral values. Then that block and the instructions in it are removed. Now EphValues contains dangling pointers. Then new instructions get allocated and reuse the same memory. Now EphValues claims that values are ephemeral that aren't ephemeral.

It's basically the same problem we have/had with LoopHeaders, yep.

Apr 29 2021, 10:30 AM · Restricted Project

Apr 28 2021

tejohnson requested review of D101507: [SimplifyCFG] Look for control flow changes instead of side effects..
Apr 28 2021, 6:27 PM · Restricted Project
tejohnson added inline comments to D101494: [SimplifyCFG] Ignore ephemeral values when counting insts for threading.
Apr 28 2021, 3:29 PM · Restricted Project
tejohnson requested review of D101494: [SimplifyCFG] Ignore ephemeral values when counting insts for threading.
Apr 28 2021, 3:27 PM · Restricted Project
tejohnson accepted D99599: [NewPM] Add an option to dump pass structure.

lgtm

Apr 28 2021, 8:55 AM · Restricted Project, Restricted Project
tejohnson added inline comments to D99599: [NewPM] Add an option to dump pass structure.
Apr 28 2021, 8:14 AM · Restricted Project, Restricted Project

Apr 27 2021

tejohnson updated subscribers of D99546: [llvm][ValueMap] Share the value map between MappingContext.

@pcc @tejohnson I tried to fix the assertion failure shown in the test case (reduced from actual code generated from swift compiler) by simplifying the ValueMapper but I couldn't quite get the comdat tests to pass. I think comdat is relying on some of the indirect symbol that doesn't appear in the ValueMap for the normal context but I couldn't quite figure out how that works. Any suggestion?

@pcc or @tejohnson (or maybe @MaskRay from the lld side), any chance you could help explain why the testcases llvm/test/Linker/comdat16.ll and llvm/test/LTO/Resolution/X86/comdat16.ll rely on a separate value map? Or do you have a suggestion for someone else that could help?

Apr 27 2021, 7:10 PM · Restricted Project

Apr 23 2021

tejohnson added a comment to D101180: Mark type test intrinsics as speculatable to fix inline cost.

I have an auto bisecting cron job that has twice identified this change as the source of a regression when building release (no asserts). Is the following expected or can we get a quick fix?

Apr 23 2021, 3:24 PM · Restricted Project
tejohnson committed rG38959c462434: Require asserts for test that uses debug flag (authored by tejohnson).
Require asserts for test that uses debug flag
Apr 23 2021, 3:24 PM
tejohnson added inline comments to D99599: [NewPM] Add an option to dump pass structure.
Apr 23 2021, 10:18 AM · Restricted Project, Restricted Project
tejohnson committed rG10b781fb033e: Mark type test intrinsics as speculatable to fix inline cost (authored by tejohnson).
Mark type test intrinsics as speculatable to fix inline cost
Apr 23 2021, 10:03 AM
tejohnson closed D101180: Mark type test intrinsics as speculatable to fix inline cost.
Apr 23 2021, 10:02 AM · Restricted Project
tejohnson requested review of D101180: Mark type test intrinsics as speculatable to fix inline cost.
Apr 23 2021, 9:39 AM · Restricted Project

Apr 19 2021

tejohnson added a comment to D99554: [ThinLTO] During module importing, close one source module before open another one for distributed mode..

Does this help non-distributed ThinLTO as well? cc: @weiwang

Apr 19 2021, 10:43 AM · Restricted Project, Restricted Project

Apr 16 2021

tejohnson added inline comments to D99599: [NewPM] Add an option to dump pass structure.
Apr 16 2021, 12:15 PM · Restricted Project, Restricted Project

Apr 14 2021

tejohnson added a comment to D99501: ignore -flto= options recognized by GCC.

Just approved the test case patch. Sorry I missed the lack of test on this!

Apr 14 2021, 8:38 AM · Restricted Project
tejohnson accepted D100484: add test case for ignoring -flto=auto and -flto=jobserver.

lgtm

Apr 14 2021, 8:38 AM · Restricted Project

Apr 12 2021

tejohnson requested changes to D99683: [HIP] Support ThinLTO.

To do what I suggested in the prior comment, you'd probably want to add a new index-wide flag (since we don't read IR in the thin link). See for example how EnableSplitLTOUnit is set and used. You could add a flag like ForceImportAll or something like that. Then you don't necessarily even need to bump up the importing threshold or add the new import-noinline flag. Just key off of that in the importer to try to force import everything. If something cannot be imported, fail with a clear error.

Apr 12 2021, 8:58 AM · Restricted Project, Restricted Project
tejohnson added a reviewer for D99683: [HIP] Support ThinLTO: tejohnson.
Apr 12 2021, 8:52 AM · Restricted Project, Restricted Project
tejohnson added a comment to D99683: [HIP] Support ThinLTO.

Any other concerns? Thanks.

Apr 12 2021, 8:45 AM · Restricted Project, Restricted Project

Apr 6 2021

tejohnson added a comment to D99683: [HIP] Support ThinLTO.

This raises some higher level questions for me:

First, how will you deal with other corner cases that won't or cannot be imported right now? While enabling importing of noinline functions and cranking up the threshold will get the majority of functions imported, there are cases that we still won't import (functions/vars that are interposable, certain funcs/vars that cannot be renamed, most non-const variables with non-trivial initializers).

We will document the limitation of thinLTO support of HIP toolchain and recommend users not to use thinLTO in those corner cases.

Second, force importing of everything transitively referenced defeats the purpose of ThinLTO and would probably make it worse than regular LTO. The main entry module will need to import everything transitively referenced from there, so everything not dead in the binary, which should make that module post importing equivalent to a regular LTO module. In addition, every other module needs to transitively import everything referenced from those modules, making them very large depending on how many leaf vs non-leaf functions and variables they contain. What is the goal of doing ThinLTO in this case?

The objective is to improve optimization/codegen time by using multi-threads of thinLTO. For example, I have 10 modules each containing a kernel. In full LTO linking, I get one big module containing 10 kernels with all functions inlined, and I have one thread for optimization/codegen. With thinLTO, I get one kernel in each module, with all functions inlined. AMDGPU internalization and global DCE will remove functions not used by that kernel in each module. I will get 10 threads, each doing optimization/codegen for one kernel. Theoretically, there could be 10 times speed up.

Apr 6 2021, 3:38 PM · Restricted Project, Restricted Project
tejohnson added a comment to D99683: [HIP] Support ThinLTO.

I haven't looked extensively yet, but why import noinline functions? Also, please add a patch description.

AMDGPU backend does not support linking of object files containing external symbols, i.e. one object file calling a function defined in another object file. Therefore the LLVM module passed to AMDGPU backend needs to contain definitions of all callees, even if a callee has noinline attribute. To support backends like this, the function importer needs to be able to import functions with noinline attribute. Therefore we add an LLVM option for allowing that, which is off by default. We have comments at line 70 of HIP.cpp about this.

How does a non-LTO build work, or is (full) LTO currently required? Because with ThinLTO we only import functions that are externally defined but referenced in the current module. Also, when ThinLTO imports functions it makes them available_externally, which means they are dropped and made external symbols again after inlining. So anything imported but not inlined will go back to being an external symbol.

AMDGPU backend by default uses full LTO for linking. It does not support non-LTO linking. Currently, it inlines all functions except kernels. However we want to be able to be able not to inline all functions. Is it OK to add an LLVM option to mark imported functions as linkonce_odr so that AMDGPU backend can keep the definitions of the imported functions?

Actually AMDGPU backend will internalize all non-kernel functions before codegen. Those functions with available_externally linkage will have internal linkage before codegen, therefore they will not be dropped.

Apr 6 2021, 2:32 PM · Restricted Project, Restricted Project

Apr 5 2021

tejohnson added a comment to D99683: [HIP] Support ThinLTO.

I haven't looked extensively yet, but why import noinline functions? Also, please add a patch description.

AMDGPU backend does not support linking of object files containing external symbols, i.e. one object file calling a function defined in another object file. Therefore the LLVM module passed to AMDGPU backend needs to contain definitions of all callees, even if a callee has noinline attribute. To support backends like this, the function importer needs to be able to import functions with noinline attribute. Therefore we add an LLVM option for allowing that, which is off by default. We have comments at line 70 of HIP.cpp about this.

Apr 5 2021, 8:58 AM · Restricted Project, Restricted Project

Apr 1 2021

tejohnson accepted D99501: ignore -flto= options recognized by GCC.

lgtm

Apr 1 2021, 12:29 PM · Restricted Project
tejohnson added a comment to D99683: [HIP] Support ThinLTO.

I haven't looked extensively yet, but why import noinline functions? Also, please add a patch description.

Apr 1 2021, 11:03 AM · Restricted Project, Restricted Project
tejohnson added a comment to D99501: ignore -flto= options recognized by GCC.

do you mean, just discard the current patch, and just list those as unsupported?

Apr 1 2021, 9:16 AM · Restricted Project
tejohnson added a comment to D99501: ignore -flto= options recognized by GCC.

It looks like typically Clang will warn for unsupported gcc options. See clang_ignored_gcc_optimization_f_Group and its handling in Clang.cpp. I think it should be possible to simply mark these as clang_ignored_gcc_optimization_f_Group in Options.td. I.e. have an entry specifically for each of these, like:

Apr 1 2021, 8:34 AM · Restricted Project

Mar 30 2021

tejohnson accepted D99554: [ThinLTO] During module importing, close one source module before open another one for distributed mode..

LGTM with a couple of comment requests noted below.

Mar 30 2021, 10:28 AM · Restricted Project, Restricted Project
tejohnson added a comment to D69428: [GlobalOpt] Remove valgrind specific hacks (revert r160529).

@nlopes

Not sure you are still interested in this patch. If so, I would suggest you get in touch with some Google folks and check with them if their codebase is ready for this patch. They were the only reason for this workaround.

Yeah, it would be nice to get rid of this valgrind legacy (btw, there is already D70006 which eliminates such kind of unneeded globals for thin LTO). However I don't whom to contact.

@tejohnson @chandlerc @hans should be able to point out someone that can comment on this and/or test if this patch regresses google's leak tests.

Mar 30 2021, 8:42 AM · Restricted Project
tejohnson added a reviewer for D69428: [GlobalOpt] Remove valgrind specific hacks (revert r160529): chandlerc.
Mar 30 2021, 8:42 AM · Restricted Project

Mar 29 2021

tejohnson accepted D99382: Add -disable-verify flag to llvm-link..

Ok thanks for trying. Someone should remove that orphaned CHECK-ERR in the other test - could you commit that as well?

Mar 29 2021, 2:14 PM · Restricted Project

Mar 26 2021

tejohnson added a comment to D93927: [ArgPromotion] Copy !range metadata for loads..

This is causing a runtime failure in one of our tests. Specifically due to the nonnull metadata. It appears that this should not be cloned because the circumstances under which it is valid and applied to the load in the callee may not exist in the caller. I'm not sure about whether this is an issue for some of the other metadata. I'm going to try to create a smaller test case. But perhaps this change should be reverted.

Mar 26 2021, 11:35 AM · Restricted Project

Mar 25 2021

tejohnson added a comment to D93927: [ArgPromotion] Copy !range metadata for loads..

This is causing a runtime failure in one of our tests. Specifically due to the nonnull metadata. It appears that this should not be cloned because the circumstances under which it is valid and applied to the load in the callee may not exist in the caller. I'm not sure about whether this is an issue for some of the other metadata. I'm going to try to create a smaller test case. But perhaps this change should be reverted.

Mar 25 2021, 11:24 PM · Restricted Project
tejohnson added a comment to D99382: Add -disable-verify flag to llvm-link..

How about a test like llvm/test/LTO/X86/strip-debug-info.ll? Could something similar be done to test llvm-link?

Mar 25 2021, 5:47 PM · Restricted Project
tejohnson accepted D97484: Don't use $ as suffix for symbol names in ThinLTOBitcodeWriter and other places.

lgtm, thanks!

Mar 25 2021, 11:01 AM · Restricted Project

Mar 24 2021

tejohnson accepted D98763: [lld] add context-sensitive PGO options for COFF..

lgtm

Mar 24 2021, 7:00 PM · Restricted Project

Mar 19 2021

tejohnson committed rG0de3d1c81428: [llvm] Add assertions for the smart pointers with the possibility to be null in… (authored by OikawaKirie).
[llvm] Add assertions for the smart pointers with the possibility to be null in…
Mar 19 2021, 1:55 PM
tejohnson closed D97258: [llvm] Add assertions for the smart pointers with the possibility to be null in ModuleLazyLoaderCache::operator().
Mar 19 2021, 1:55 PM · Restricted Project

Mar 18 2021

tejohnson accepted D98854: [test] Fix mix of variable use/def and regex match.

lgtm

Mar 18 2021, 7:43 AM · Restricted Project