tejohnson (Teresa Johnson)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 27 2015, 11:17 AM (125 w, 4 d)

Recent Activity

Wed, Sep 20

tejohnson committed rL313766: [ThinLTO] Fix dead stripping analysis for SamplePGO.
[ThinLTO] Fix dead stripping analysis for SamplePGO
Wed, Sep 20, 10:11 AM
tejohnson closed D38086: [ThinLTO] Fix dead stripping analysis for SamplePGO by committing rL313766: [ThinLTO] Fix dead stripping analysis for SamplePGO.
Wed, Sep 20, 10:11 AM
tejohnson created D38086: [ThinLTO] Fix dead stripping analysis for SamplePGO.
Wed, Sep 20, 9:35 AM

Tue, Sep 19

tejohnson accepted D36637: Import all inlined indirect call targets for SamplePGO..

LGTM

Tue, Sep 19, 1:58 PM
tejohnson added inline comments to D36637: Import all inlined indirect call targets for SamplePGO..
Tue, Sep 19, 12:07 PM
tejohnson accepted D38018: Handle profile mismatch correctly for SamplePGO..

LGTM

Tue, Sep 19, 11:03 AM
tejohnson added inline comments to D38018: Handle profile mismatch correctly for SamplePGO..
Tue, Sep 19, 10:12 AM

Mon, Sep 18

tejohnson accepted D37995: [Docs] Document cache pruning support for gold.

LGTM with one fix noted.

Mon, Sep 18, 4:21 PM · Restricted Project
tejohnson accepted D37993: [ThinLTO/gold] Implement ThinLTO cache pruning support.

LGTM

Mon, Sep 18, 4:20 PM
tejohnson added a comment to D37993: [ThinLTO/gold] Implement ThinLTO cache pruning support.

Thanks for working on adding this missing feature! Please add a test and include an update to the info on where cache pruning is supported in ThinLTO.rst (for examples of both, see https://reviews.llvm.org/D37607, where it was added to lld).

Mon, Sep 18, 1:17 PM

Wed, Sep 13

tejohnson accepted D37842: Reland r313157, "ThinLTO: Correctly follow aliasee references when dead stripping." which was reverted in r313222..

LGTM

Wed, Sep 13, 9:56 PM
tejohnson committed rL313158: [ThinLTO] AliasSummary should not have any references.
[ThinLTO] AliasSummary should not have any references
Wed, Sep 13, 10:12 AM
tejohnson closed D37814: [ThinLTO] AliasSummary should not have any references by committing rL313158: [ThinLTO] AliasSummary should not have any references.
Wed, Sep 13, 10:12 AM
tejohnson created D37814: [ThinLTO] AliasSummary should not have any references.
Wed, Sep 13, 9:45 AM
tejohnson committed rL313153: Fix bot failures by requiring x86 target in new test.
Fix bot failures by requiring x86 target in new test
Wed, Sep 13, 8:37 AM
tejohnson committed rL313151: [ThinLTO] For SamplePGO, need to handle ICP targets consistently in thin link.
[ThinLTO] For SamplePGO, need to handle ICP targets consistently in thin link
Wed, Sep 13, 8:18 AM
tejohnson closed D37783: [ThinLTO] For SamplePGO, need to handle ICP targets consistently in thin link by committing rL313151: [ThinLTO] For SamplePGO, need to handle ICP targets consistently in thin link.
Wed, Sep 13, 8:18 AM
tejohnson accepted D37789: ThinLTO: Correctly follow aliasee references when dead stripping..

LGTM, not sure how we didn't hit this before!

Wed, Sep 13, 8:18 AM

Tue, Sep 12

tejohnson created D37783: [ThinLTO] For SamplePGO, need to handle ICP targets consistently in thin link.
Tue, Sep 12, 6:21 PM

Wed, Sep 6

tejohnson accepted D37553: Analysis: Correctly handle all function operand references..

LGTM

Wed, Sep 6, 10:09 PM

Fri, Sep 1

tejohnson accepted D37370: ModuleSummaryAnalysis: Correctly handle refs from function inline asm to module inline asm..

LGTM too other than test target dependent issue Mehdi pointed out.

Fri, Sep 1, 7:07 AM

Tue, Aug 29

tejohnson committed rL312019: [ThinLTO] Clean up stale alias import handling.
[ThinLTO] Clean up stale alias import handling
Tue, Aug 29, 11:19 AM
tejohnson closed D37266: [ThinLTO] Clean up stale alias import handling by committing rL312019: [ThinLTO] Clean up stale alias import handling.
Tue, Aug 29, 11:19 AM
tejohnson added a comment to D37266: [ThinLTO] Clean up stale alias import handling.

Is it worth having the DEBUG output if no aliases are ever imported?

Tue, Aug 29, 11:09 AM
tejohnson created D37266: [ThinLTO] Clean up stale alias import handling.
Tue, Aug 29, 10:33 AM
tejohnson accepted D37252: Add null check for promoted direct call.

LGTM

Tue, Aug 29, 6:18 AM

Fri, Aug 25

tejohnson added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

This looks really good, just a few minor comments. But I do have a concern about the test and it not showing the multiple node SCCs that I would expect. Can you investigate?

Fri, Aug 25, 9:00 AM
tejohnson accepted D37144: [gold] Fix up a new test to allow it to pass on non x86 builds..

It would be great to have a bot that catches these.

Fri, Aug 25, 6:42 AM

Aug 23 2017

tejohnson added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Getting there, thanks!

Aug 23 2017, 7:54 AM

Aug 22 2017

tejohnson added a comment to D36987: [ThinLTO} Add modref information to call info in function summary.

Thanks for doing this. Some comments below, but I'd like someone else like Davide or Mehdi to review since I wrote some of this.

Aug 22 2017, 1:22 PM

Aug 21 2017

tejohnson added a comment to D36910: [ThinLTO] WIP Tracking of per-call mod ref info.

I added bitcode read/write support and updated all the tests so they use the new bitcode. I was planning on waiting for a bit more feedback on this patch (and updating mine with the requested changes), but I can post mine whenever you want to move the discussion to llvm-commits.

Aug 21 2017, 1:19 PM
tejohnson accepted D36834: [lib/Analysis] - Mark personality functions as live..

LGTM

Aug 21 2017, 9:02 AM
tejohnson added a comment to D36850: [ThinLTO] Add norecurse function attribute propagation.

Looks really close to me, just some comments on the dummy root node detection. But note I had some comments on D36311 that need to be resolved.

Aug 21 2017, 6:44 AM

Aug 19 2017

tejohnson added a comment to D36910: [ThinLTO] WIP Tracking of per-call mod ref info.

I'm OK with the direction, Teresa, thanks.
If Charles wants to pursue this path before the GSoC ends, that will be great.

Yeah, I definitely like this approach better than what I had written. I can address the TODOs and clean it up a bit on Monday?

Aug 19 2017, 3:47 PM
tejohnson committed rL311257: Fix bot failures by requiring x86 target.
Fix bot failures by requiring x86 target
Aug 19 2017, 12:16 PM
tejohnson committed rL311254: [ThinLTO] Fix ThinLTO crash.
[ThinLTO] Fix ThinLTO crash
Aug 19 2017, 11:05 AM
tejohnson closed D36919: [ThinLTO] Fix ThinLTO crash by committing rL311254: [ThinLTO] Fix ThinLTO crash.
Aug 19 2017, 11:05 AM
tejohnson updated the diff for D36919: [ThinLTO] Fix ThinLTO crash.

Address comments

Aug 19 2017, 8:35 AM
tejohnson added inline comments to D36919: [ThinLTO] Fix ThinLTO crash.
Aug 19 2017, 8:35 AM

Aug 18 2017

tejohnson created D36919: [ThinLTO] Fix ThinLTO crash.
Aug 18 2017, 10:45 PM
tejohnson created D36910: [ThinLTO] WIP Tracking of per-call mod ref info.
Aug 18 2017, 6:13 PM
tejohnson added inline comments to D36850: [ThinLTO] Add norecurse function attribute propagation.
Aug 18 2017, 6:00 PM
tejohnson added inline comments to D36850: [ThinLTO] Add norecurse function attribute propagation.
Aug 18 2017, 10:05 AM
tejohnson added inline comments to D36850: [ThinLTO] Add norecurse function attribute propagation.
Aug 18 2017, 9:26 AM
tejohnson added inline comments to D36834: [lib/Analysis] - Mark personality functions as live..
Aug 18 2017, 6:34 AM

Aug 17 2017

tejohnson added inline comments to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Aug 17 2017, 1:31 PM
tejohnson added a comment to D36834: [lib/Analysis] - Mark personality functions as live..

Rather than modifying the index format, can you just set the live root flag on the corresponding FunctionSummary for personality routines when we build the per-module summaries during the compile step? I.e. here: http://llvm-cs.pcc.me.uk/lib/Analysis/ModuleSummaryAnalysis.cpp#278?

Aug 17 2017, 12:51 PM
tejohnson requested changes to D36556: [IR] AutoUpgrade ModuleFlagBehavior for PIC and PIE level.

Duncan has a good point about replaceOperandWith, please address that (updating to remove patch accept).

Aug 17 2017, 11:57 AM
tejohnson accepted D36556: [IR] AutoUpgrade ModuleFlagBehavior for PIC and PIE level.

Sorry for the delay, I was out all last week and missed this one. LGTM but with one question below about a test change.

Aug 17 2017, 11:50 AM

Aug 16 2017

tejohnson added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

How should I test this and ensure it's working properly?

Aug 16 2017, 12:07 PM
tejohnson added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

I tried implementing a search to find the root nodes in the Index callgraph. But there can be multiple root nodes in the callgraph and we can only return one node from GraphTraits<ModuleSummaryIndex *>::getEntry. Since I didn't know how to pick the correct root, I didn't go with that solution. Is there any information I can find in the Index that indicates the entry point?

Aug 16 2017, 7:04 AM

Aug 15 2017

tejohnson accepted D36440: [ThinLTO] Fix thinLTO crash .

got time to look at it more. The root cause of why the call resolves to a static variable in another module is from the following code in BitcodeWriter.cpp. The call to ::link was recorded to GUID: 14802282251123568682 which was correct. Since it does not have a value-id, the logic for sample PGO kicks in. 14802282251123568682 was treated as 'original guid' and the from the map, the PGO annotated GUID for the static var was found (note that one original guid maps to multiple GUIDs). After this, the call to :link now resolves to static var 'link's GUID.

Aug 15 2017, 4:34 PM
tejohnson accepted D36557: [Doc] Update LangRef for new Module Flag Behavior.

LGTM, thanks!

Aug 15 2017, 6:56 AM

Aug 8 2017

tejohnson added inline comments to D36440: [ThinLTO] Fix thinLTO crash .
Aug 8 2017, 2:11 PM
tejohnson added inline comments to D36440: [ThinLTO] Fix thinLTO crash .
Aug 8 2017, 8:17 AM

Aug 4 2017

tejohnson accepted D36333: Move the SampleProfileLoader right after EarlyFPM..

LGTM

Aug 4 2017, 1:15 PM
tejohnson added inline comments to D36333: Move the SampleProfileLoader right after EarlyFPM..
Aug 4 2017, 12:52 PM
tejohnson added inline comments to D36333: Move the SampleProfileLoader right after EarlyFPM..
Aug 4 2017, 11:55 AM
tejohnson accepted D36317: Adjust the hotness threshold from 99.9% to 99%..

LGTM

Aug 4 2017, 8:44 AM
tejohnson added a comment to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

Do you have commit access and if not do you want me to submit for you?

Yup, I got commit access last week.

Aug 4 2017, 7:51 AM
tejohnson accepted D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

LGTM with one last question/nit. Do you have commit access and if not do you want me to submit for you? Do you have follow-on patches that use this about ready to go for review?

Aug 4 2017, 7:43 AM

Aug 3 2017

tejohnson committed rL310005: Use profile summary to disable peeling for huge working sets.
Use profile summary to disable peeling for huge working sets
Aug 3 2017, 4:43 PM
tejohnson closed D36288: Use profile summary to disable peeling for huge working sets by committing rL310005: Use profile summary to disable peeling for huge working sets.
Aug 3 2017, 4:43 PM
tejohnson updated the diff for D36288: Use profile summary to disable peeling for huge working sets.

Implement Easwaran's suggestion

Aug 3 2017, 4:05 PM
tejohnson added a comment to D36288: Use profile summary to disable peeling for huge working sets.

Have we considered limiting the max number of peeled iterations instead of disabling it?

Aug 3 2017, 3:55 PM
tejohnson created D36288: Use profile summary to disable peeling for huge working sets.
Aug 3 2017, 2:27 PM
tejohnson committed rL309966: Disable loop peeling during full unrolling pass..
Disable loop peeling during full unrolling pass.
Aug 3 2017, 10:53 AM
tejohnson closed D36258: Disable loop peeling during full unrolling pass. by committing rL309966: Disable loop peeling during full unrolling pass..
Aug 3 2017, 10:53 AM
tejohnson added inline comments to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.
Aug 3 2017, 9:36 AM
tejohnson added inline comments to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.
Aug 3 2017, 9:32 AM
tejohnson added inline comments to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.
Aug 3 2017, 9:13 AM
tejohnson added inline comments to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.
Aug 3 2017, 8:41 AM
tejohnson added inline comments to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.
Aug 3 2017, 8:37 AM
tejohnson added a comment to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

Overall looks good, just a few minor things below. Do you have a follow up dependent patch you can send for review that shows how one of these attributes will be utilized? I'd prefer to have this committed when we have a user for at least one of these new attributes.

Aug 3 2017, 8:01 AM
tejohnson updated the diff for D36258: Disable loop peeling during full unrolling pass..

Remove extraneous variable

Aug 3 2017, 6:28 AM
tejohnson added a comment to D36258: Disable loop peeling during full unrolling pass..

Perhaps it is cleaner to

  1. pass the information whether it is a full unroll to tryToUnroll
  2. add a internal option FullUnrollAllowPeeling and make it off by default? This will be similar to UnrollAllowPeeling flag, but takes precedence if it is full unroll.

While I'm somewhat fond of refactoring these interfaces to be less of a mess, would it be better in a follow-up patch? I would also hope it can tackle more than just peeling but encompass several of the numerous parameters.

Aug 3 2017, 6:06 AM

Aug 2 2017

tejohnson created D36258: Disable loop peeling during full unrolling pass..
Aug 2 2017, 10:12 PM
tejohnson committed rL309886: [PM] Split LoopUnrollPass and make partial unroller a function pass.
[PM] Split LoopUnrollPass and make partial unroller a function pass
Aug 2 2017, 1:36 PM
tejohnson closed D36157: [PM] Split LoopUnrollPass and make partial unroller a function pass by committing rL309886: [PM] Split LoopUnrollPass and make partial unroller a function pass.
Aug 2 2017, 1:36 PM
tejohnson added a comment to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

What makes them fail?

They're missing the new field I added to the bitcode, so they fail a bounds-check assert.

I'm glad we have these tests then :)
That's a real bug in your code: the bitcode has to be designed so that you can read back older version.

OK, I'll move that field then.

Aug 2 2017, 1:14 PM
tejohnson updated the diff for D36157: [PM] Split LoopUnrollPass and make partial unroller a function pass.

Fix NDEBUG build - guard declaration of value used only in DEBUG build.

Aug 2 2017, 10:13 AM
tejohnson updated the diff for D36157: [PM] Split LoopUnrollPass and make partial unroller a function pass.

Address review comments

Aug 2 2017, 9:59 AM
tejohnson added inline comments to D36157: [PM] Split LoopUnrollPass and make partial unroller a function pass.
Aug 2 2017, 9:57 AM

Aug 1 2017

tejohnson created D36157: [PM] Split LoopUnrollPass and make partial unroller a function pass.
Aug 1 2017, 9:13 AM

Jul 28 2017

tejohnson accepted D35964: Change INSTR_PROF_DEFAULT_NUM_VAL_PER_SITE from 8 to 16..

LGTM

Jul 28 2017, 6:52 AM

Jul 27 2017

tejohnson accepted D35969: Increase the ImportHotMultiplier to 10.0.

LGTM

Jul 27 2017, 5:54 PM
tejohnson accepted D35966: Changing the default MaxNumPromotions from 2 to 3..

LGTM

Jul 27 2017, 5:50 PM
tejohnson accepted D35962: Separate the ICP total threshold and remaining threshold..

LGTM

Jul 27 2017, 5:46 PM
tejohnson added inline comments to D35962: Separate the ICP total threshold and remaining threshold..
Jul 27 2017, 5:11 PM
tejohnson accepted D35875: ThinLTO: Don't import aliases of any kind (even linkonce_odr).

LGTM, with one more comment update noted below. Thanks!

Jul 27 2017, 8:06 AM
tejohnson added a comment to D35875: ThinLTO: Don't import aliases of any kind (even linkonce_odr).

Sorry for the delay. A few comments below. Regarding Mehdi's performance question - I don't expect this to have a major impact as we were only importing aliases in limited cases anyway. We'll see any performance effect in our nightly testing once this goes in, which should surface any surprise effects.

Jul 27 2017, 7:12 AM

Jul 26 2017

tejohnson accepted D35876: ThinLTO: Don't import imported entities (not even local ones).

LGTM

Jul 26 2017, 9:45 AM

Jul 25 2017

tejohnson committed rL309009: [LTO] Prevent dead stripping and internalization of symbols with sections.
[LTO] Prevent dead stripping and internalization of symbols with sections
Jul 25 2017, 12:43 PM
tejohnson closed D35639: [LTO] Prevent dead stripping and internalization of symbols with sections by committing rL309009: [LTO] Prevent dead stripping and internalization of symbols with sections.
Jul 25 2017, 12:43 PM
tejohnson updated the diff for D35639: [LTO] Prevent dead stripping and internalization of symbols with sections.

Address comments

Jul 25 2017, 11:32 AM
tejohnson updated the diff for D35639: [LTO] Prevent dead stripping and internalization of symbols with sections.

Address review comments

Jul 25 2017, 9:13 AM
tejohnson added inline comments to D35639: [LTO] Prevent dead stripping and internalization of symbols with sections.
Jul 25 2017, 9:13 AM

Jul 24 2017

tejohnson updated the diff for D35639: [LTO] Prevent dead stripping and internalization of symbols with sections.

Address review comments, moving handling to gold-plugin (I'd like to get
this one in asap and add the lld support in a follow up).

Jul 24 2017, 3:56 PM

Jul 21 2017

tejohnson added a comment to D35633: [ThinLTO] Add FunctionAttr NoRecurse and ReadAttr propagation to ThinLTO.

Just a note: this isn't fully completed yet. I still have to add tests and do some verification, but I wanted to make it's on the right track.

Jul 21 2017, 6:55 AM

Jul 20 2017

tejohnson added inline comments to D35639: [LTO] Prevent dead stripping and internalization of symbols with sections.
Jul 20 2017, 2:55 PM