Page MenuHomePhabricator
Feed Advanced Search

Fri, Aug 30

glider committed rG57b87322ab4f: [CodeGen]: fix error message for "=r" asm constraint (authored by glider).
[CodeGen]: fix error message for "=r" asm constraint
Fri, Aug 30, 2:05 AM
glider committed rL370444: [CodeGen]: fix error message for "=r" asm constraint.
[CodeGen]: fix error message for "=r" asm constraint
Fri, Aug 30, 1:58 AM
glider closed D66948: [CodeGen]: fix error message for "=r" asm constraint.
Fri, Aug 30, 1:58 AM · Restricted Project, Restricted Project
glider updated the diff for D66948: [CodeGen]: fix error message for "=r" asm constraint.

Minor comment fix.

Fri, Aug 30, 1:56 AM · Restricted Project, Restricted Project

Thu, Aug 29

glider updated the diff for D66948: [CodeGen]: fix error message for "=r" asm constraint.

clang-format

Thu, Aug 29, 8:10 AM · Restricted Project, Restricted Project
glider created D66948: [CodeGen]: fix error message for "=r" asm constraint.
Thu, Aug 29, 8:06 AM · Restricted Project, Restricted Project
glider committed rG1b5e38a6c910: [CodeGen]: don't treat structures returned in registers as memory inputs (authored by glider).
[CodeGen]: don't treat structures returned in registers as memory inputs
Thu, Aug 29, 4:24 AM
glider added a comment to D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.

Landed r370335, thank you!

Thu, Aug 29, 4:24 AM · Restricted Project, Restricted Project
glider committed rL370335: [CodeGen]: don't treat structures returned in registers as memory inputs.
[CodeGen]: don't treat structures returned in registers as memory inputs
Thu, Aug 29, 4:20 AM
glider closed D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.
Thu, Aug 29, 4:20 AM · Restricted Project, Restricted Project
glider updated the diff for D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.

Rebased the patch

Thu, Aug 29, 4:13 AM · Restricted Project, Restricted Project

Mon, Aug 26

glider added a comment to D61879: WIP: Prototype of DSE optimizations for -ftrivial-auto-var-init.
Mon, Aug 26, 8:06 AM · Restricted Project, Restricted Project

Aug 7 2019

glider updated the diff for D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.

Added test cases for =x, replaced grep with not

Aug 7 2019, 8:53 AM · Restricted Project, Restricted Project
glider added a comment to D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.

For the "=x" thing I was talking about, try the following testcase:

void a() { struct S { unsigned x[4]; } z; asm volatile("%0":"=x"(z)); }
void a2() { struct S { unsigned x[8]; } z; asm volatile("%0":"=x"(z)); }

clang trunk gives "error: couldn't allocate output register for constraint 'x'" in the backend for both functions. gcc prints "%xmm0" for the first, and rejects the second; not exactly sure why it's rejecting the second, though. It would be nice if both worked, although I guess it's okay if we print a reasonable error message. Please add a testcase, at least.

Aug 7 2019, 8:49 AM · Restricted Project, Restricted Project

Aug 5 2019

glider added a comment to D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.

Eli, any other comments?

Aug 5 2019, 4:03 AM · Restricted Project, Restricted Project

Jul 30 2019

glider added a comment to D64742: Allow using -ftrivial-auto-var-init=zero in C mode without extra flags.

As a data point, Linus Torvalds suggested that we need a similar feature for GCC so that the "kernel C standard" mandates zero-initialization for locals: https://lkml.org/lkml/2019/7/28/206

Jul 30 2019, 7:04 AM · Restricted Project
glider added a comment to D61879: WIP: Prototype of DSE optimizations for -ftrivial-auto-var-init.

Vitaly, what's the current status of these patches? What's your plan on submitting them?

Jul 30 2019, 2:20 AM · Restricted Project, Restricted Project
glider added a comment to D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.

+srhines
Heads up: this patch reduces the size of the following Android kernel functions:

Jul 30 2019, 2:14 AM · Restricted Project, Restricted Project
glider added a reviewer for D65234: [CodeGen]: don't treat structures returned in registers as memory inputs: srhines.
Jul 30 2019, 2:12 AM · Restricted Project, Restricted Project
glider updated the diff for D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.

Test for =X somehow sneaked in - drop it.

Jul 30 2019, 1:39 AM · Restricted Project, Restricted Project

Jul 29 2019

glider added inline comments to D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.
Jul 29 2019, 7:36 AM · Restricted Project, Restricted Project
glider updated the diff for D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.

Addressed Eli's comments, added a test for a packed struct

Jul 29 2019, 7:36 AM · Restricted Project, Restricted Project

Jul 26 2019

glider updated the diff for D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.

Make big_struct() test triple-specific

Jul 26 2019, 5:45 AM · Restricted Project, Restricted Project
glider added inline comments to D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.
Jul 26 2019, 5:39 AM · Restricted Project, Restricted Project
glider updated the diff for D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.

Fixed comments from Eli and Nick, added tests for unusual struct sizes

Jul 26 2019, 5:36 AM · Restricted Project, Restricted Project

Jul 24 2019

glider added reviewers for D65234: [CodeGen]: don't treat structures returned in registers as memory inputs: eli.friedman, jyknight.
Jul 24 2019, 11:20 AM · Restricted Project, Restricted Project
glider created D65234: [CodeGen]: don't treat structures returned in registers as memory inputs.
Jul 24 2019, 11:20 AM · Restricted Project, Restricted Project

Jul 16 2019

glider added inline comments to D61879: WIP: Prototype of DSE optimizations for -ftrivial-auto-var-init.
Jul 16 2019, 6:58 AM · Restricted Project, Restricted Project

Jul 15 2019

glider added a reviewer for D64742: Allow using -ftrivial-auto-var-init=zero in C mode without extra flags: jfb.
Jul 15 2019, 7:43 AM · Restricted Project
glider created D64742: Allow using -ftrivial-auto-var-init=zero in C mode without extra flags.
Jul 15 2019, 7:38 AM · Restricted Project

Jul 5 2019

glider added inline comments to D61879: WIP: Prototype of DSE optimizations for -ftrivial-auto-var-init.
Jul 5 2019, 10:12 AM · Restricted Project, Restricted Project
glider added inline comments to D61879: WIP: Prototype of DSE optimizations for -ftrivial-auto-var-init.
Jul 5 2019, 6:25 AM · Restricted Project, Restricted Project

Jul 3 2019

glider added inline comments to D61879: WIP: Prototype of DSE optimizations for -ftrivial-auto-var-init.
Jul 3 2019, 3:11 AM · Restricted Project, Restricted Project
glider added a comment to D61879: WIP: Prototype of DSE optimizations for -ftrivial-auto-var-init.

Vitaly, can you please rebase the patch?
As far as I can see, you've submitted parts of it already.
(not that I can't resolve the conflicts locally, but keeping it up-to-date may save others some time)

Jul 3 2019, 3:02 AM · Restricted Project, Restricted Project
glider committed rGf82672873a28: MSan: handle callbr instructions (authored by glider).
MSan: handle callbr instructions
Jul 3 2019, 2:32 AM
glider committed rL365008: MSan: handle callbr instructions.
MSan: handle callbr instructions
Jul 3 2019, 2:29 AM
glider closed D64072: MSan: handle callbr instructions.
Jul 3 2019, 2:29 AM · Restricted Project
glider updated the diff for D64072: MSan: handle callbr instructions.

Fixed the test

Jul 3 2019, 2:23 AM · Restricted Project

Jul 2 2019

glider created D64072: MSan: handle callbr instructions.
Jul 2 2019, 6:13 AM · Restricted Project

May 8 2019

glider added a comment to D61664: [NewPM] Setup Passes for KASan and KMSan.

Rubberstamp LGTM

May 8 2019, 2:51 AM · Restricted Project, Restricted Project
glider accepted D61664: [NewPM] Setup Passes for KASan and KMSan.
May 8 2019, 2:51 AM · Restricted Project, Restricted Project

Apr 30 2019

glider committed rG06d00afa61ee: MSan: handle llvm.lifetime.start intrinsic (authored by glider).
MSan: handle llvm.lifetime.start intrinsic
Apr 30 2019, 1:34 AM
glider committed rL359536: MSan: handle llvm.lifetime.start intrinsic.
MSan: handle llvm.lifetime.start intrinsic
Apr 30 2019, 1:33 AM
glider closed D60617: MSan: handle llvm.lifetime.start intrinsic.
Apr 30 2019, 1:33 AM · Restricted Project

Apr 29 2019

glider added a comment to D60617: MSan: handle llvm.lifetime.start intrinsic.

PTAL

Apr 29 2019, 1:04 AM · Restricted Project

Apr 26 2019

glider added inline comments to D60617: MSan: handle llvm.lifetime.start intrinsic.
Apr 26 2019, 3:46 AM · Restricted Project
glider updated the diff for D60617: MSan: handle llvm.lifetime.start intrinsic.

Simplified the logic per Evgeniy's request.
No test changes.

Apr 26 2019, 3:40 AM · Restricted Project

Apr 25 2019

glider added a comment to D60617: MSan: handle llvm.lifetime.start intrinsic.

ptal

Apr 25 2019, 2:14 AM · Restricted Project

Apr 24 2019

glider added a comment to D60593: [GwpAsan] Introduce GWP-ASan..

Sorry for a bikeshedding comment, but it had always puzzled me why this is called GWP-ASan.
As I've heard, "GWP-ASan is neither GWP nor ASan", and the word GWP (https://storage.googleapis.com/pub-tools-public-publication-data/pdf/36575.pdf) doesn't even make sense outside Google.
Is it too late already to pick a less cryptic name to avoid confusing the users?

Apr 24 2019, 7:54 AM · Restricted Project, Restricted Project, Restricted Project
glider added inline comments to D60617: MSan: handle llvm.lifetime.start intrinsic.
Apr 24 2019, 7:40 AM · Restricted Project
glider updated the diff for D60617: MSan: handle llvm.lifetime.start intrinsic.

Fixed the case when an alloca was initialized twice.

Apr 24 2019, 7:38 AM · Restricted Project

Apr 17 2019

glider added inline comments to D60617: MSan: handle llvm.lifetime.start intrinsic.
Apr 17 2019, 2:44 AM · Restricted Project
glider updated the diff for D60617: MSan: handle llvm.lifetime.start intrinsic.

Fixed comments.

Apr 17 2019, 2:41 AM · Restricted Project

Apr 16 2019

glider added a comment to D60617: MSan: handle llvm.lifetime.start intrinsic.

Updated the patch, PTAL.

Apr 16 2019, 4:04 AM · Restricted Project
glider updated the summary of D60617: MSan: handle llvm.lifetime.start intrinsic.
Apr 16 2019, 4:01 AM · Restricted Project
glider updated the diff for D60617: MSan: handle llvm.lifetime.start intrinsic.

s/instrumentAllocaKmsan/poisonAllocaKmsan
s/instrumentAllocaUserspace/poisonAllocaUserspace

Apr 16 2019, 4:00 AM · Restricted Project
glider updated the diff for D60617: MSan: handle llvm.lifetime.start intrinsic.

Added a test containing an intrinsic without a known alloca.
Handled this case by falling back to instrumenting only allocas.
Added a flag to disable llvm.lifetime.start handling.

Apr 16 2019, 3:53 AM · Restricted Project

Apr 15 2019

glider added inline comments to D60617: MSan: handle llvm.lifetime.start intrinsic.
Apr 15 2019, 10:11 AM · Restricted Project
glider added a comment to D60617: MSan: handle llvm.lifetime.start intrinsic.

Please test the case when alloca can not be found.
See https://bugs.llvm.org/show_bug.cgi?id=41481 for the reference.

Ok, will do. The repro in the bug doesn't produce IR containing a select statement for me, but the idea is clear.

Apr 15 2019, 10:02 AM · Restricted Project
glider added a comment to D60615: [Transforms][ASan] Move findAllocaForValue() to Utils/Local.cpp. NFC.

This is very similar to GetUnderlyingObject, but it also handles PHIs, has a cache, but does not do InstructionSimplify and does not have a lookup limit.
It would be nice to merge the two.

Ok, noted.

LGTM

Apr 15 2019, 2:11 AM · Restricted Project
glider committed rG6a63e5aa7be6: [Transforms][ASan] Move findAllocaForValue() to Utils/Local.cpp. NFC (authored by glider).
[Transforms][ASan] Move findAllocaForValue() to Utils/Local.cpp. NFC
Apr 15 2019, 1:59 AM
glider committed rL358380: [Transforms][ASan] Move findAllocaForValue() to Utils/Local.cpp. NFC.
[Transforms][ASan] Move findAllocaForValue() to Utils/Local.cpp. NFC
Apr 15 2019, 1:59 AM
glider closed D60615: [Transforms][ASan] Move findAllocaForValue() to Utils/Local.cpp. NFC.
Apr 15 2019, 1:59 AM · Restricted Project

Apr 12 2019

glider updated the diff for D60617: MSan: handle llvm.lifetime.start intrinsic.

Removed errs()

Apr 12 2019, 8:37 AM · Restricted Project
glider created D60617: MSan: handle llvm.lifetime.start intrinsic.
Apr 12 2019, 7:24 AM · Restricted Project
glider created D60615: [Transforms][ASan] Move findAllocaForValue() to Utils/Local.cpp. NFC.
Apr 12 2019, 7:17 AM · Restricted Project

Mar 4 2019

glider accepted D58885: Variable auto-init: split out small arrays.
Mar 4 2019, 9:43 AM · Restricted Project, Restricted Project
glider added a comment to D58885: Variable auto-init: split out small arrays.

The change itself looks good.
It doesn't seem to regress kernel performance on ARM64. I haven't got to testing on x86 yet, but don't anticipate any problems either.

Mar 4 2019, 9:37 AM · Restricted Project, Restricted Project
glider added inline comments to D58885: Variable auto-init: split out small arrays.
Mar 4 2019, 7:34 AM · Restricted Project, Restricted Project

Mar 1 2019

glider committed rGfa61dddf5dc8: CodeGen: Fix PR40605 by splitting constant struct initializers (authored by glider).
CodeGen: Fix PR40605 by splitting constant struct initializers
Mar 1 2019, 1:03 AM
glider committed rL355181: CodeGen: Fix PR40605 by splitting constant struct initializers.
CodeGen: Fix PR40605 by splitting constant struct initializers
Mar 1 2019, 1:03 AM
glider committed rC355181: CodeGen: Fix PR40605 by splitting constant struct initializers.
CodeGen: Fix PR40605 by splitting constant struct initializers
Mar 1 2019, 1:03 AM
glider closed D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.

Landed r355181, thank you!

Mar 1 2019, 1:03 AM

Feb 28 2019

glider added inline comments to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.
Feb 28 2019, 2:48 AM
glider updated the diff for D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.
Feb 28 2019, 2:48 AM

Feb 27 2019

glider added a comment to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.

Rebased the code, updated the tests, added FIXME.

Feb 27 2019, 8:17 AM
glider updated the diff for D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.
Feb 27 2019, 8:16 AM

Feb 26 2019

glider committed rG4f7bc0eee7e6: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init… (authored by glider).
CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init…
Feb 26 2019, 2:46 AM
glider committed rC354861: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init….
CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init…
Feb 26 2019, 2:46 AM
glider closed D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.

Landed r354861, thank you!

Feb 26 2019, 2:46 AM
glider committed rL354861: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init….
CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init…
Feb 26 2019, 2:46 AM

Feb 25 2019

glider added a comment to D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.

PTAL

Feb 25 2019, 12:12 AM

Feb 21 2019

glider added inline comments to D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.
Feb 21 2019, 4:42 AM
glider updated the diff for D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.

Addressed Peter's comments.

Feb 21 2019, 4:41 AM

Feb 20 2019

glider added a comment to D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.

@pcc Peter, can you please take a look?

Feb 20 2019, 1:29 AM

Feb 18 2019

glider added a comment to D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.

Did you get a chance to compare compile-time numbers? I want to make sure this doesn't regress compile time in any measurable way.

I've compared compile times for the Linux kernel with -j64 (total user time about 20 minutes). The difference is well beyond the noise.

Feb 18 2019, 2:03 AM
glider updated the diff for D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.

Fixed JF's comments

Feb 18 2019, 2:03 AM

Feb 15 2019

glider added inline comments to D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.
Feb 15 2019, 6:40 AM
glider updated the diff for D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.

Updated the diff, PTAL

Feb 15 2019, 6:38 AM
glider added a comment to D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.

We want to handle padding comprehensively, not just initialization. Here you want to blow away whatever was in u.i when assigning to u.c, that way reads of u.i as well as any memcpy or just random reads don't leak what was there before.

Wonder if the kernel doesn't contain code that relies on both union fields being available at the same time.

Feb 15 2019, 6:31 AM
glider added inline comments to D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.
Feb 15 2019, 2:54 AM

Feb 14 2019

glider updated the diff for D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.

Somewhat ready.
I chose to replace padding bytes in constants instead of creating a new padded type and generating patternFor for it.

Feb 14 2019, 10:29 AM

Feb 13 2019

glider added a comment to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.

FWIW I think I've almost finished handling the padding: https://reviews.llvm.org/D58188
I haven't checked whether it works correctly with padding in custom initializers (like struct s local = {1, 2}), but TEST_UNINIT and TEST_BRACES are covered already.

Feb 13 2019, 9:05 AM
glider created D58188: CodeGen: Explicitly initialize structure padding in the -ftrivial-auto-var-init mode.
Feb 13 2019, 9:02 AM
glider added a comment to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.

... which happily skips the padding.

Feb 13 2019, 2:40 AM
glider added a comment to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.

Well, now we somewhat break padding initialization.

Feb 13 2019, 2:05 AM
glider added inline comments to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.
Feb 13 2019, 1:53 AM
glider updated the diff for D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.

Addressed the comments.

Feb 13 2019, 1:53 AM

Feb 12 2019

glider added a comment to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.

This patch shaved off 2.5% of performance slowdown on https://github.com/kamalmarhubi/linux-ipc-benchmarks/blob/master/af_inet_loopback.c on a kernel built in pattern-initialization mode.
The .rodata size went down by only 12K (0.5%, since we now split only structures smaller than 64 bytes)
The .text size went down by 19K (0.4%)

Feb 12 2019, 9:15 AM
glider updated the diff for D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.

Added a helper function to decide whether we want to break the structure or not.
Right now it only checks for optimization level and structure size.

Feb 12 2019, 7:48 AM