evgeny777 (Eugene Leviant)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 1 2015, 3:36 AM (142 w, 1 d)

Recent Activity

Tue, May 8

evgeny777 created D46584: [Evaluator] Improve evaluation of call instruction.
Tue, May 8, 9:31 AM
evgeny777 added a comment to D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission..

This and D45850 made 2 - 2.5% performance improvement to a large real world application already built with PGO + full LTO. Any chance to push this anytime soon?

Tue, May 8, 9:13 AM

Apr 6 2018

evgeny777 accepted D45198: [GlobalOpt] Fix support for casts in ctors..

LGTM with nit.

Apr 6 2018, 4:17 AM

Apr 5 2018

evgeny777 committed rLLD329281: [ELF] Don't add NOLOAD sections to segment.
[ELF] Don't add NOLOAD sections to segment
Apr 5 2018, 6:27 AM
evgeny777 committed rL329281: [ELF] Don't add NOLOAD sections to segment.
[ELF] Don't add NOLOAD sections to segment
Apr 5 2018, 6:27 AM
evgeny777 closed D45264: [ELF] Don't put NOLOAD section into PT_LOAD.
Apr 5 2018, 6:27 AM · lld

Apr 4 2018

evgeny777 created D45264: [ELF] Don't put NOLOAD section into PT_LOAD.
Apr 4 2018, 9:11 AM · lld
evgeny777 added inline comments to D45198: [GlobalOpt] Fix support for casts in ctors..
Apr 4 2018, 12:54 AM

Mar 13 2018

evgeny777 committed rL327381: [Evaluator] Evaluate load/store with bitcast.
[Evaluator] Evaluate load/store with bitcast
Mar 13 2018, 3:23 AM
evgeny777 closed D43457: [Evaluator] Improve evaluation of load/store.
Mar 13 2018, 3:23 AM

Mar 12 2018

evgeny777 committed rL327254: [ThinLTO] Recommit of import global variables.
[ThinLTO] Recommit of import global variables
Mar 12 2018, 3:35 AM

Mar 7 2018

evgeny777 updated the diff for D43457: [Evaluator] Improve evaluation of load/store.

Unfortunately ConstantFoldLoadFromConstPtr seems to be useful, because it checks for GV initializer being constant and we're not forced by this constraint when evaluating static ctors.
However it turned out we can use ConstantFoldLoadThroughBitcast when evaluating both load and store.

Mar 7 2018, 11:30 AM

Feb 25 2018

evgeny777 added a comment to D43457: [Evaluator] Improve evaluation of load/store.

Any comments on this?

Feb 25 2018, 11:40 PM

Feb 22 2018

evgeny777 added inline comments to D43595: WIP alternative to r325686 (Implement name based structure type mapping)..
Feb 22 2018, 7:13 AM

Feb 21 2018

evgeny777 committed rL325686: [IRMover] Implement name based structure type mapping.
[IRMover] Implement name based structure type mapping
Feb 21 2018, 7:16 AM
evgeny777 closed D43199: [IRMover] Implement name based structure type mapping.
Feb 21 2018, 7:15 AM
evgeny777 accepted D43199: [IRMover] Implement name based structure type mapping.

Approved in the mailing list

Feb 21 2018, 7:15 AM

Feb 19 2018

evgeny777 retitled D43457: [Evaluator] Improve evaluation of load/store from [Evaluator] Improve evaluation of bitcast to [Evaluator] Improve evaluation of load/store.
Feb 19 2018, 5:16 AM
evgeny777 created D43457: [Evaluator] Improve evaluation of load/store.
Feb 19 2018, 5:16 AM

Feb 16 2018

evgeny777 committed rL325362: [ThinLTO] Fix data race in test #2.
[ThinLTO] Fix data race in test #2
Feb 16 2018, 9:27 AM
evgeny777 committed rL325361: [ThinLTO] Fix data race in test.
[ThinLTO] Fix data race in test
Feb 16 2018, 8:58 AM
evgeny777 committed rL325320: [ThinLTO] Import global variables.
[ThinLTO] Import global variables
Feb 16 2018, 12:13 AM
evgeny777 closed D43077: [ThinLTO] Import globals.
Feb 16 2018, 12:13 AM

Feb 15 2018

evgeny777 updated the diff for D43199: [IRMover] Implement name based structure type mapping.

Addressed review comments in the mailing list:

  • added --initial-module flag to llvm-link
  • test cases now use llvm-link instead of llvm-lto
Feb 15 2018, 9:29 AM

Feb 14 2018

evgeny777 updated the diff for D43199: [IRMover] Implement name based structure type mapping.

Rebased + added @dblaikie

Feb 14 2018, 4:24 AM
evgeny777 committed rL325110: [IRMover] Move type name extraction to a separate function. NFC.
[IRMover] Move type name extraction to a separate function. NFC
Feb 14 2018, 2:34 AM

Feb 13 2018

evgeny777 updated the diff for D43077: [ThinLTO] Import globals.

Addressed review comments

Feb 13 2018, 10:25 AM

Feb 12 2018

evgeny777 created D43199: [IRMover] Implement name based structure type mapping.
Feb 12 2018, 10:03 AM
evgeny777 added inline comments to D43077: [ThinLTO] Import globals.
Feb 12 2018, 7:17 AM
evgeny777 added inline comments to D43077: [ThinLTO] Import globals.
Feb 12 2018, 1:36 AM
evgeny777 added a comment to D43077: [ThinLTO] Import globals.

FYI: Here are some results from running LLVM test suite:

Feb 12 2018, 12:10 AM

Feb 8 2018

evgeny777 created D43077: [ThinLTO] Import globals.
Feb 8 2018, 8:49 AM

Feb 6 2018

evgeny777 committed rL324447: [LegalizeDAG] Truncate condition operand of ISD::SELECT.
[LegalizeDAG] Truncate condition operand of ISD::SELECT
Feb 6 2018, 9:42 PM
evgeny777 closed D42737: [LegalizeDAG] Truncate condition operand of ISD::SELECT.
Feb 6 2018, 9:42 PM
evgeny777 updated the diff for D42737: [LegalizeDAG] Truncate condition operand of ISD::SELECT.

Added checks to test case

Feb 6 2018, 10:11 AM
evgeny777 added inline comments to D42737: [LegalizeDAG] Truncate condition operand of ISD::SELECT.
Feb 6 2018, 8:05 AM
evgeny777 added inline comments to D42737: [LegalizeDAG] Truncate condition operand of ISD::SELECT.
Feb 6 2018, 4:16 AM

Feb 5 2018

evgeny777 added a comment to D42737: [LegalizeDAG] Truncate condition operand of ISD::SELECT.

Any comments on this? @efriedma ?

Feb 5 2018, 10:43 PM
evgeny777 added reviewers for D42737: [LegalizeDAG] Truncate condition operand of ISD::SELECT: kristof.beyls, javed.absar, aemerson.
Feb 5 2018, 10:42 PM

Feb 1 2018

evgeny777 retitled D42737: [LegalizeDAG] Truncate condition operand of ISD::SELECT from [LegalizeDAG] Support expanding condition operand of ISD::SELECT to [LegalizeDAG] Truncate condition operand of ISD::SELECT.
Feb 1 2018, 1:40 AM
evgeny777 updated the diff for D42737: [LegalizeDAG] Truncate condition operand of ISD::SELECT.

Addressed review comments. The new version also handles scalar types which size is not power of 2.

Feb 1 2018, 12:50 AM

Jan 31 2018

evgeny777 created D42737: [LegalizeDAG] Truncate condition operand of ISD::SELECT.
Jan 31 2018, 7:07 AM
evgeny777 abandoned D26857: [ELF] Print output name for command line errors.
Jan 31 2018, 6:56 AM · lld
evgeny777 abandoned D34459: [ELF] Better handling of _GLOBAL_OFFSET_TABLE_.
Jan 31 2018, 6:56 AM · lld

Jan 25 2018

evgeny777 committed rL323407: [IRMover] Add comment and fix test case.
[IRMover] Add comment and fix test case
Jan 25 2018, 12:38 AM

Jan 23 2018

evgeny777 abandoned D42418: IRMover: remove unused (?) code.

Ok, I found an answer. Calling this off.

Jan 23 2018, 11:59 PM
evgeny777 added a comment to D42418: IRMover: remove unused (?) code.

Yes, I've seen that as well, but it seems to me that type mapping logic has changed since then. @rafael ?

Jan 23 2018, 7:59 AM
evgeny777 created D42418: IRMover: remove unused (?) code.
Jan 23 2018, 5:39 AM

Jan 22 2018

evgeny777 committed rL323116: [ThinLTO] Re-commit of dot dumper after test fix.
[ThinLTO] Re-commit of dot dumper after test fix
Jan 22 2018, 5:37 AM

Jan 21 2018

evgeny777 committed rL323065: Temporarily revert r323062 to investigate buildbot failures.
Temporarily revert r323062 to investigate buildbot failures
Jan 21 2018, 2:25 AM
evgeny777 committed rL323063: An attempt to fix buildbot after rL323062.
An attempt to fix buildbot after rL323062
Jan 21 2018, 12:50 AM

Jan 20 2018

evgeny777 committed rL323062: [ThinLTO] Implement summary visualizer.
[ThinLTO] Implement summary visualizer
Jan 20 2018, 11:29 PM
evgeny777 closed D41297: [ThinLTO] Implement summary visualizer.
Jan 20 2018, 11:29 PM
evgeny777 updated the diff for D41297: [ThinLTO] Implement summary visualizer.

Addressed review comments

Jan 20 2018, 6:08 AM
evgeny777 added inline comments to D41297: [ThinLTO] Implement summary visualizer.
Jan 20 2018, 12:24 AM

Jan 19 2018

evgeny777 updated the diff for D41297: [ThinLTO] Implement summary visualizer.

Addressed review comments

Jan 19 2018, 6:00 AM
evgeny777 added inline comments to D41297: [ThinLTO] Implement summary visualizer.
Jan 19 2018, 5:30 AM
evgeny777 added inline comments to D41297: [ThinLTO] Implement summary visualizer.
Jan 19 2018, 5:23 AM

Jan 17 2018

evgeny777 added a comment to D42107: [ThinLTO] - Stop internalizing and drop non-prevailing symbols..

@tejohnson Can't we use ThinLTO.PrevailingModuleForGUID in the backend?

Jan 17 2018, 11:56 AM

Jan 16 2018

evgeny777 added a comment to D42107: [ThinLTO] - Stop internalizing and drop non-prevailing symbols..

@grimar Can't internalization be skipped during backend processing rather than changing linkage in summary index?. At the very first glance it is possible to check if def is prevailing or not in MustPreserveGV (see thinLTOInternalizeModule)

Jan 16 2018, 8:17 AM
evgeny777 added a comment to D41297: [ThinLTO] Implement summary visualizer.

ModuleId issue was also fixed

Jan 16 2018, 5:35 AM
evgeny777 updated the diff for D41297: [ThinLTO] Implement summary visualizer.

Changes:

  • Var/function name StringRef is not saved for legacy summary formats (when VST is used instead of strtab).
  • Now printing full module path in comment before cluster definition
  • Added comments to every edge/node
  • Added test case
Jan 16 2018, 5:34 AM

Jan 12 2018

evgeny777 added inline comments to D41297: [ThinLTO] Implement summary visualizer.
Jan 12 2018, 10:45 AM
evgeny777 added a comment to D41297: [ThinLTO] Implement summary visualizer.

@tejohnson The BM.parseModule is invoked in the very end of thin link (see runThinLTOBackendThread). How can it work if it's not guaranteed that we have valid BC data till this moment? Note: parse module uses Stream

Jan 12 2018, 9:46 AM
evgeny777 added a comment to D41297: [ThinLTO] Implement summary visualizer.

At which point of the API is this guarantee?

Jan 12 2018, 9:23 AM
evgeny777 added inline comments to D41297: [ThinLTO] Implement summary visualizer.
Jan 12 2018, 8:51 AM

Jan 11 2018

evgeny777 added a comment to D41297: [ThinLTO] Implement summary visualizer.

Ping

Jan 11 2018, 4:18 AM

Dec 25 2017

evgeny777 committed rL321443: [ThinLTO] Don't import functions with noinline attribute.
[ThinLTO] Don't import functions with noinline attribute
Dec 25 2017, 5:58 AM
evgeny777 closed D41489: [ThinLTO] Don't try to import noinline functions.
Dec 25 2017, 5:58 AM
evgeny777 added a comment to D41297: [ThinLTO] Implement summary visualizer.

Any comments or suggestions?

Dec 25 2017, 5:36 AM

Dec 22 2017

evgeny777 updated the diff for D41489: [ThinLTO] Don't try to import noinline functions.

Addressed review comments

Dec 22 2017, 1:13 AM

Dec 21 2017

evgeny777 created D41489: [ThinLTO] Don't try to import noinline functions.
Dec 21 2017, 5:57 AM
evgeny777 closed D41291: [ThinLTO] Disallow multiple prevailing defs.
Dec 21 2017, 5:30 AM

Dec 18 2017

evgeny777 added a comment to D41297: [ThinLTO] Implement summary visualizer.

Also it shows linkage for functions and variables. For each function flag bits and number of instructions are shown as well.

Dec 18 2017, 9:26 AM
evgeny777 added a comment to D41297: [ThinLTO] Implement summary visualizer.

I don't know about the best way to display this, could be color, bold, label, or other markers.

Dec 18 2017, 9:09 AM
evgeny777 updated the diff for D41297: [ThinLTO] Implement summary visualizer.

@mehdi_amini I've updated diff with one which no longer requires post-processing at the cost of having extra StringRef in GlobalValueSummaryInfo

Dec 18 2017, 6:56 AM
evgeny777 committed rL320968: [ThinLTO] Remove unused code.
[ThinLTO] Remove unused code
Dec 18 2017, 2:54 AM

Dec 15 2017

evgeny777 added a comment to D41297: [ThinLTO] Implement summary visualizer.

Thanks for looking at it!
Currently I'm annotating graph in the following way

Dec 15 2017, 9:43 AM
evgeny777 created D41297: [ThinLTO] Implement summary visualizer.
Dec 15 2017, 9:15 AM
evgeny777 committed rL320825: [ThinLTO] Disallow multiple prevailing defs.
[ThinLTO] Disallow multiple prevailing defs
Dec 15 2017, 8:28 AM
evgeny777 created D41291: [ThinLTO] Disallow multiple prevailing defs.
Dec 15 2017, 7:40 AM
evgeny777 committed rL320794: [LLVMgold] Don't set undefined symbol as prevailing.
[LLVMgold] Don't set undefined symbol as prevailing
Dec 15 2017, 1:19 AM
This revision was not accepted when it landed; it landed in state Needs Review.
Dec 15 2017, 1:19 AM

Dec 14 2017

evgeny777 committed rL320710: [LLVMgold] Use platform dependent extension in tests.
[LLVMgold] Use platform dependent extension in tests
Dec 14 2017, 8:00 AM
evgeny777 closed D41238: [LLVMgold] Use platform dependent extension in tests.
Dec 14 2017, 7:59 AM
evgeny777 created D41238: [LLVMgold] Use platform dependent extension in tests.
Dec 14 2017, 7:25 AM

Dec 13 2017

evgeny777 added a comment to D41113: [LLVMgold] Don't set resolutions for undefined symbols to 'Prevailing'.

In that case, the user of the llvm-lto2 tool has made a mistake.

I see. This assertion currently breaks one of llvm-lto test cases. I'll fix it than.

Dec 13 2017, 10:57 AM
evgeny777 added a comment to D41113: [LLVMgold] Don't set resolutions for undefined symbols to 'Prevailing'.

@pcc What about case when assertion is triggered in llvm-lto2 (symbol resolutions are set manually with -r=...) ? How to deal with it?

Dec 13 2017, 10:48 AM
evgeny777 added a comment to D41113: [LLVMgold] Don't set resolutions for undefined symbols to 'Prevailing'.

the fact that the existing test would fail this new assertion without your fix is good enough.

Unfortunately it will fail both with and w/o the fix (in case assertion is added), because llvm-lto doesn't use gold plugin in any way. One can explicitly set both ASM undef and IR def as prevailing by simply giving this resolution file:

Dec 13 2017, 10:27 AM
evgeny777 added a comment to D41113: [LLVMgold] Don't set resolutions for undefined symbols to 'Prevailing'.
I meant that the asm_undefined2.ll test should cause this assert without the fix in this patch
Dec 13 2017, 9:47 AM
evgeny777 added a comment to D41113: [LLVMgold] Don't set resolutions for undefined symbols to 'Prevailing'.

Can you add an assert for this

check-all passes with this, but we can explicitly mark asm undefined symbol as prevailing using llvm-lto(2) and trigger this assert. Is this OK?

Dec 13 2017, 8:23 AM
evgeny777 added a comment to D41113: [LLVMgold] Don't set resolutions for undefined symbols to 'Prevailing'.

Thanks for sharing this! Here are results of my brief investigation:

Dec 13 2017, 1:17 AM

Dec 12 2017

evgeny777 added inline comments to D41113: [LLVMgold] Don't set resolutions for undefined symbols to 'Prevailing'.
Dec 12 2017, 8:10 AM
evgeny777 created D41113: [LLVMgold] Don't set resolutions for undefined symbols to 'Prevailing'.
Dec 12 2017, 7:39 AM
evgeny777 committed rL320467: Revert r320464 as it breaks gold plugin tests.
Revert r320464 as it breaks gold plugin tests
Dec 12 2017, 2:13 AM
evgeny777 committed rL320464: [ThinLTO] Remove unused code from thinLTOInternalizeModule.
[ThinLTO] Remove unused code from thinLTOInternalizeModule
Dec 12 2017, 1:13 AM
evgeny777 closed D40970: [ThinLTO] Remove unused (?) code from thinLTOInternalizeModule by committing rL320464: [ThinLTO] Remove unused code from thinLTOInternalizeModule.
Dec 12 2017, 1:13 AM

Dec 11 2017

evgeny777 added a comment to D40970: [ThinLTO] Remove unused (?) code from thinLTOInternalizeModule.

@tejohnson Any comments or objections?

Dec 11 2017, 7:08 AM

Dec 8 2017

evgeny777 added inline comments to D40970: [ThinLTO] Remove unused (?) code from thinLTOInternalizeModule.
Dec 8 2017, 1:54 AM

Dec 7 2017

evgeny777 created D40970: [ThinLTO] Remove unused (?) code from thinLTOInternalizeModule.
Dec 7 2017, 10:24 AM