ncharlie (Charles Saternos)
User

Projects

User does not belong to any projects.

User Details

User Since
May 4 2017, 2:45 PM (28 w, 4 d)

Recent Activity

Sat, Nov 4

ncharlie added inline comments to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Sat, Nov 4, 1:23 PM
ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Sat, Nov 4, 1:22 PM

Oct 13 2017

ncharlie added inline comments to D36850: [ThinLTO] Add norecurse function attribute propagation.
Oct 13 2017, 12:56 PM
ncharlie added inline comments to D36850: [ThinLTO] Add norecurse function attribute propagation.
Oct 13 2017, 11:49 AM
ncharlie added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Any updates on this @tejohnson @davide ?

Sorry - didn't realize this was ready for re-review! I had a question about the tests earlier (see below). The comment wasn't marked as done. Although I see now that the test has changed a bit - did you resolve this? I will take a look this morning.

Oct 13 2017, 8:44 AM
ncharlie added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Any updates on this @tejohnson @davide ?

Oct 13 2017, 8:34 AM

Oct 1 2017

ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Added operator!= and operator<

Oct 1 2017, 1:15 PM

Sep 2 2017

ncharlie added inline comments to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Sep 2 2017, 8:44 AM

Aug 25 2017

ncharlie added inline comments to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Aug 25 2017, 8:01 AM
ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Aug 25 2017, 7:58 AM

Aug 23 2017

ncharlie added inline comments to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Aug 23 2017, 12:42 PM
ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Updated according to comments
Added test.

Aug 23 2017, 6:07 AM

Aug 21 2017

ncharlie retitled D36850: [ThinLTO] Add norecurse function attribute propagation from [ThinLTO] Add function attribute propagation to [ThinLTO] Add norecurse function attribute propagation.
Aug 21 2017, 4:55 PM
ncharlie added a comment to D36987: [ThinLTO} Add modref information to call info in function summary.

Continuation of: D36910

Aug 21 2017, 4:06 PM
ncharlie added reviewers for D36987: [ThinLTO} Add modref information to call info in function summary: tejohnson, davide, mehdi_amini.
Aug 21 2017, 4:02 PM
ncharlie created D36987: [ThinLTO} Add modref information to call info in function summary.
Aug 21 2017, 4:01 PM
ncharlie 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:11 PM

Aug 19 2017

ncharlie 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.

Aug 19 2017, 3:35 PM

Aug 18 2017

ncharlie updated the diff for D36850: [ThinLTO] Add norecurse function attribute propagation.
Aug 18 2017, 4:19 PM
ncharlie added inline comments to D36850: [ThinLTO] Add norecurse function attribute propagation.
Aug 18 2017, 1:02 PM
ncharlie updated the diff for D36850: [ThinLTO] Add norecurse function attribute propagation.

Corrected norecurse propagation and insert norecurse into IR.

Aug 18 2017, 8:49 AM
ncharlie added inline comments to D36850: [ThinLTO] Add norecurse function attribute propagation.
Aug 18 2017, 8:14 AM
ncharlie updated the summary of D36850: [ThinLTO] Add norecurse function attribute propagation.
Aug 18 2017, 8:12 AM
ncharlie added a dependent revision for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries: D36850: [ThinLTO] Add norecurse function attribute propagation.
Aug 18 2017, 8:12 AM

Aug 17 2017

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

Will add tests next.

Aug 17 2017, 3:56 PM
ncharlie created D36850: [ThinLTO] Add norecurse function attribute propagation.
Aug 17 2017, 3:55 PM
ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Create dummy root for index callgraph entry point.

Aug 17 2017, 8:35 AM

Aug 16 2017

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

Maybe add an scc dumper facility for the module summary graph, which creates an scc_iterator from the module summary and just dumps the nodes in each scc, that can be checked using a Lit based test

Aug 16 2017, 1:19 PM
ncharlie added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Perhaps you can create such a dummy node in the index, which has edges to all the root nodes, and return that as the entry node?

Aug 16 2017, 7:09 AM
ncharlie 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, 6:59 AM
ncharlie added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

I'm not sure you're always guaranteed to have the main function as entry point of your program.

Aug 16 2017, 6:50 AM

Aug 15 2017

ncharlie closed D33513: [ThinLTO] Fix ThinLTO crash while destroying context.

Committed: rL310967

Aug 15 2017, 3:40 PM · lld
ncharlie committed rL310967: [ThinLTO] Fix ThinLTO crash while destroying context.
[ThinLTO] Fix ThinLTO crash while destroying context
Aug 15 2017, 3:24 PM
ncharlie updated the diff for D33513: [ThinLTO] Fix ThinLTO crash while destroying context.

oops - forgot a cast

Aug 15 2017, 3:24 PM · lld
ncharlie added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

I don't think I can use a topological sort in this case since the FunctionSummary callgraph isn't necessarily a DAG, so if there's a cycle it would make the sort useless.

Aug 15 2017, 1:16 PM
ncharlie added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Ah, I think I realized what the entryNode should be: I should topologically sort the nodes in the ModuleSummaryIndex and take the first FunctionSummary. Right now the entry node is arbitrary.

Aug 15 2017, 11:35 AM
ncharlie added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

For some reason, the scc_iterator isn't visiting the whole graph, and only visits the children of the entryNode. How should I move across all SCCs in the Index?

Aug 15 2017, 10:58 AM
ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

removed fsummary_iterator since it's not needed for the scc_iterator

Aug 15 2017, 10:53 AM
ncharlie added inline comments to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Aug 15 2017, 10:14 AM
ncharlie added inline comments to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Aug 15 2017, 7:29 AM

Aug 8 2017

ncharlie added inline comments to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Aug 8 2017, 3:40 PM
ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Added GraphTraits for ModuleSummaryIndex

Aug 8 2017, 3:40 PM
ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

simplify code by using mapped_iterator rather than custom implementation.

Aug 8 2017, 10:27 AM
ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Aug 8 2017, 7:32 AM
ncharlie updated the diff for D33513: [ThinLTO] Fix ThinLTO crash while destroying context.
Aug 8 2017, 6:36 AM · lld

Aug 7 2017

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

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

Aug 7 2017, 5:27 PM
ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Make the entry node the function itself.

Aug 7 2017, 5:14 PM

Aug 4 2017

ncharlie closed D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

Committed (rL310061).

Aug 4 2017, 9:51 AM
ncharlie committed rL310061: [ThinLTO] Add FunctionAttrs to ThinLTO index.
[ThinLTO] Add FunctionAttrs to ThinLTO index
Aug 4 2017, 9:02 AM
ncharlie updated the diff for D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

Simplified test.

Aug 4 2017, 8:09 AM
ncharlie added a comment to D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Since this patch depends on D36233, I'm diffing against it to show minimal changes.

Aug 4 2017, 8:04 AM
ncharlie updated the diff for D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.

Diff against D36233 rather than master.

Aug 4 2017, 7:59 AM
ncharlie added a dependent revision for D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index: D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Aug 4 2017, 7:58 AM
ncharlie created D36311: [ThinLTO] Add GraphTraits for FunctionSummaries.
Aug 4 2017, 7:58 AM
ncharlie 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?

Aug 4 2017, 7:49 AM

Aug 3 2017

ncharlie updated the diff for D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

Check for returnDoesNotAlias rather than NoAlias.

Aug 3 2017, 10:13 AM
ncharlie added a comment to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

Note the function is dumped with "noalias", but doesn't have the NoAlias attribute. However, the return is marked no alias. And looking at the FunctionAttrs.cpp NoAlias propagation (addNoAliasAttrs), it is this (the returnDoesNotAlias) that is being propagated. So perhaps that's what you need to be checking. Probably change the name of the boolean flag in the index accordingly.

Aug 3 2017, 9:45 AM
ncharlie added inline comments to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.
Aug 3 2017, 9:03 AM
ncharlie added inline comments to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.
Aug 3 2017, 8:17 AM
ncharlie updated the diff for D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

Bumped bitcode version, removed memory access field, updated tests.

Aug 3 2017, 7:48 AM

Aug 2 2017

ncharlie added a comment to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

I think you simply need to bump the INDEX_VERSION (in BitcodeWriter.cpp). Looks like you left it at 3, and your reads of the new flags are checking if the version is >=3, but it should presumably be reading the new field at version > 3 with the new version set to 4.

Aug 2 2017, 6:07 PM
ncharlie added a comment to D33513: [ThinLTO] Fix ThinLTO crash while destroying context.

@dexonsmith @pcc ping?

Aug 2 2017, 1:06 PM · lld
ncharlie 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.

Aug 2 2017, 12:59 PM
ncharlie added a comment to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

What makes them fail?

Aug 2 2017, 11:11 AM
ncharlie added a comment to D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.

Currently, two tests are failing: ThinLTO/X86/autoupgrade.ll and ThinLTO/X86/drop-debug-info.ll, since they have blobs with old versions of the bitcode. Should I update those as well?

Aug 2 2017, 10:57 AM
ncharlie created D36233: [ThinLTO] Add FunctionAttrs to ThinLTO index.
Aug 2 2017, 10:54 AM

Jul 31 2017

ncharlie abandoned D36047: [ThinLTO] Add function attributes to Index and GraphTraits for function summary.

Will be split into two patches.

Jul 31 2017, 8:25 AM
ncharlie abandoned D35633: [ThinLTO] Add FunctionAttr NoRecurse and ReadAttr propagation to ThinLTO.

Patch is being split into multiple dependent patches.

Jul 31 2017, 8:25 AM

Jul 29 2017

ncharlie added inline comments to D36047: [ThinLTO] Add function attributes to Index and GraphTraits for function summary.
Jul 29 2017, 8:32 AM
ncharlie created D36047: [ThinLTO] Add function attributes to Index and GraphTraits for function summary.
Jul 29 2017, 8:26 AM

Jul 22 2017

ncharlie added inline comments to D35633: [ThinLTO] Add FunctionAttr NoRecurse and ReadAttr propagation to ThinLTO.
Jul 22 2017, 7:32 AM

Jul 21 2017

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

Thank you for the feedback and corrections, @mehdi_amini and @tejohnson. I wasn't understanding the purpose of SCCNodes when I initially wrote the patch - thanks for clarifying :)

Jul 21 2017, 10:13 AM
ncharlie updated the diff for D35633: [ThinLTO] Add FunctionAttr NoRecurse and ReadAttr propagation to ThinLTO.

Updated as per comments.

Jul 21 2017, 6:56 AM
ncharlie added inline comments to D35633: [ThinLTO] Add FunctionAttr NoRecurse and ReadAttr propagation to ThinLTO.
Jul 21 2017, 6:51 AM

Jul 20 2017

ncharlie 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 20 2017, 12:20 PM
ncharlie added a comment to D35633: [ThinLTO] Add FunctionAttr NoRecurse and ReadAttr propagation to ThinLTO.

refactored code and removed unnecessary SCCNodes

Jul 20 2017, 11:09 AM
ncharlie updated the diff for D35633: [ThinLTO] Add FunctionAttr NoRecurse and ReadAttr propagation to ThinLTO.
  • added memory access info to index callgraph edges
  • renamed functions
Jul 20 2017, 11:09 AM
ncharlie added inline comments to D35633: [ThinLTO] Add FunctionAttr NoRecurse and ReadAttr propagation to ThinLTO.
Jul 20 2017, 7:31 AM

Jul 19 2017

ncharlie added inline comments to D35633: [ThinLTO] Add FunctionAttr NoRecurse and ReadAttr propagation to ThinLTO.
Jul 19 2017, 1:57 PM
ncharlie created D35633: [ThinLTO] Add FunctionAttr NoRecurse and ReadAttr propagation to ThinLTO.
Jul 19 2017, 10:09 AM

Jul 17 2017

ncharlie added a comment to D33513: [ThinLTO] Fix ThinLTO crash while destroying context.

@dexonsmith @pcc any updates on this?

Jul 17 2017, 6:15 AM · lld

Jun 27 2017

ncharlie updated the diff for D34063: [ThinLTO] YAML traits for module summaries.

Applied D34080

Jun 27 2017, 9:30 AM
ncharlie updated the diff for D34063: [ThinLTO] YAML traits for module summaries.

Added names to dump-summary in llvm-lto2.

Jun 27 2017, 8:38 AM
ncharlie added inline comments to D34063: [ThinLTO] YAML traits for module summaries.
Jun 27 2017, 8:14 AM
ncharlie updated the diff for D34063: [ThinLTO] YAML traits for module summaries.
Jun 27 2017, 8:10 AM

Jun 26 2017

ncharlie updated the diff for D34063: [ThinLTO] YAML traits for module summaries.
Jun 26 2017, 7:52 AM

Jun 20 2017

ncharlie updated the diff for D34063: [ThinLTO] YAML traits for module summaries.

Updated GlobalValue loop.

Jun 20 2017, 1:35 PM
ncharlie added inline comments to D34063: [ThinLTO] YAML traits for module summaries.
Jun 20 2017, 9:19 AM
ncharlie updated the diff for D34063: [ThinLTO] YAML traits for module summaries.

formatting

Jun 20 2017, 9:18 AM
ncharlie updated the diff for D34063: [ThinLTO] YAML traits for module summaries.

Added test, further cleanup.

Jun 20 2017, 9:15 AM
ncharlie added a comment to D34063: [ThinLTO] YAML traits for module summaries.

Can you add some test cases?

Jun 20 2017, 6:10 AM

Jun 19 2017

ncharlie updated the diff for D34080: [ThinLTO] Add dump-summary command to llvm-lto2 tool.

Added comment.

Jun 19 2017, 5:31 AM
ncharlie updated the diff for D33513: [ThinLTO] Fix ThinLTO crash while destroying context.

Simplified test.

Jun 19 2017, 5:27 AM · lld

Jun 16 2017

ncharlie updated the diff for D34063: [ThinLTO] YAML traits for module summaries.

Fixes according to comments.

Jun 16 2017, 7:38 AM

Jun 15 2017

ncharlie added inline comments to D34063: [ThinLTO] YAML traits for module summaries.
Jun 15 2017, 6:19 AM

Jun 13 2017

ncharlie added inline comments to D34063: [ThinLTO] YAML traits for module summaries.
Jun 13 2017, 1:01 PM
ncharlie retitled D34063: [ThinLTO] YAML traits for module summaries from [ThinLTO][llvm-lto2] Dump YAML for module summaries to [ThinLTO] YAML traits for module summaries.
Jun 13 2017, 7:22 AM

Jun 12 2017

ncharlie added inline comments to D34063: [ThinLTO] YAML traits for module summaries.
Jun 12 2017, 1:13 PM
ncharlie added inline comments to D34080: [ThinLTO] Add dump-summary command to llvm-lto2 tool.
Jun 12 2017, 12:22 PM
ncharlie updated the diff for D34080: [ThinLTO] Add dump-summary command to llvm-lto2 tool.

Use FileCheck rather than egrep

Jun 12 2017, 12:21 PM