evgeny777 (Eugene Leviant)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Yesterday

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

Fri, Feb 16

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

Thu, Feb 15

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
Thu, Feb 15, 9:29 AM

Wed, Feb 14

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

Rebased + added @dblaikie

Wed, Feb 14, 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
Wed, Feb 14, 2:34 AM

Tue, Feb 13

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

Addressed review comments

Tue, Feb 13, 10:25 AM

Mon, Feb 12

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

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

Mon, Feb 12, 12:10 AM

Thu, Feb 8

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

Tue, Feb 6

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

Added checks to test case

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

Mon, Feb 5

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

Any comments on this? @efriedma ?

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

Thu, Feb 1

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.
Thu, Feb 1, 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.

Thu, Feb 1, 12:50 AM

Wed, Jan 31

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

Thu, Jan 25

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

Tue, Jan 23

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

Ok, I found an answer. Calling this off.

Tue, Jan 23, 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 ?

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

Mon, Jan 22

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

Sun, Jan 21

evgeny777 committed rL323065: Temporarily revert r323062 to investigate buildbot failures.
Temporarily revert r323062 to investigate buildbot failures
Sun, Jan 21, 2:25 AM

Jan 21 2018

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

Nov 22 2017

evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.

I think, I know the reason of code section growth: you've likely compiled 401.bzip with -mthumb.
For some reason I get twice more register spills/reloads in BZ2_decompress in the patched version.
Strange, but all other functions are shorter or equal in size. Looking for the problem source now.

Nov 22 2017, 5:35 AM

Nov 21 2017

evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.

@eastig I've tested patch on bzip2. I don't have SpecCPU 2006, so I used plain 1.0.3
Here are sizes of code section I got for different runs.

Nov 21 2017, 8:19 AM
evgeny777 committed rL318749: [MI scheduler] Fix VADD and VSUB in cortex-a57 model.
[MI scheduler] Fix VADD and VSUB in cortex-a57 model
Nov 21 2017, 3:03 AM
evgeny777 closed D40254: [MI scheduler] Fix VADD and VSUB in cortex-a57 model by committing rL318749: [MI scheduler] Fix VADD and VSUB in cortex-a57 model.
Nov 21 2017, 3:03 AM
evgeny777 updated the diff for D40254: [MI scheduler] Fix VADD and VSUB in cortex-a57 model.

Addressed review comments. Also added fix for VSUB, which was also broken.

Nov 21 2017, 2:00 AM

Nov 20 2017

evgeny777 created D40254: [MI scheduler] Fix VADD and VSUB in cortex-a57 model.
Nov 20 2017, 7:39 AM

Nov 16 2017

evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.

I could finally get execution performance results for Jetson-TK1 (cortex-a15), which look meaningful
What I did so far:

Nov 16 2017, 3:46 AM

Nov 13 2017

evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.

Code size improvements on Jetson TK1 (cortex-a15). CFLAGS:

-mcpu=cortex-a15 -O3 -fomit-frame-pointer

There were no size regressions

Nov 13 2017, 4:34 AM

Nov 8 2017

evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.

401.bzip2: 5.54% code size increase

Nov 8 2017, 3:34 AM

Nov 7 2017

evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.

CTMark benchmarks (Baseline corresponds to non-patched version)


CFLAGS:

-target armv7-unknown-linux-gnueabihf  -O3 -mcpu=cortex-a15 -fomit-frame-pointer
Nov 7 2017, 2:28 AM

Nov 3 2017

evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.

@eastig Thanks a lot!

Nov 3 2017, 5:13 AM

Nov 2 2017

evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.
  1. DAGCombine calls CombineBaseUpdate for each relevant node in the DAG.
  2. isPredecessorOf is O(N) in the size of the DAG.
Nov 2 2017, 11:52 AM
evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.

I'm lost. What algorithm is O(N)? You have nested loops, the outer one is unbound, the inner one is O(N).

Nov 2 2017, 11:39 AM
evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.

Let's assume you have the absurd amount of 10 integers. That's 100 passes for N^2 in the worst possible case, ~33 for nlogn, only when the list is non-empty.

Nov 2 2017, 11:15 AM
evgeny777 added a comment to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.

After looking at your PDF, it sounds as though you don't need the while loop at all.

Nov 2 2017, 9:03 AM
evgeny777 added inline comments to D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.
Nov 2 2017, 8:09 AM
evgeny777 updated the diff for D39415: [ARMISelLowering] Better handling of NEON load/store for sequential memory regions.
  • Fixed bug caused by incorrect negative increment handling. Added test case.
  • If we can't select best possible increment value we now return the first one instead of the last one
  • Addressed some of review comments
  • Fixed issues in ivchain-ARM.ll test case
Nov 2 2017, 8:07 AM