Page MenuHomePhabricator
Feed Advanced Search

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
glider added inline comments to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.
Feb 12 2019, 7:34 AM

Feb 8 2019

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

Can you add a link to bug 40605 in the commit message?

It's in the title now, doesn't that count? :)

Feb 8 2019, 10:21 AM
glider added a comment to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.

Re: case when STy != Loc.getElementType() - this is already covered by other Clang tests.

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

Updated the patch: instead of passing around forInit, match the constant type to pointer type.

Feb 8 2019, 9:33 AM
glider added a comment to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.

Sorry, didn't mean to mark these done.

Feb 8 2019, 2:36 AM
glider added inline comments to D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.
Feb 8 2019, 2:29 AM

Feb 7 2019

glider created D57898: CodeGen: Fix PR40605 by splitting constant struct initializers.
Feb 7 2019, 8:14 AM

Feb 5 2019

Herald added a project to D54604: Automatic variable initialization: Restricted Project.

I think doing separate stores of 0xAA into struct members instead of copying part of .rodata over it will let us do a much better job in optimizing away redundant stores.
I've opened https://bugs.llvm.org/show_bug.cgi?id=40605 to track that.

Feb 5 2019, 5:48 AM · Restricted Project

Jan 29 2019

glider added a comment to D54604: Automatic variable initialization.

(Overall, since this is an "unsupported" feature, is it ok to file Bugzilla bugs for it?)

Jan 29 2019, 8:19 AM · Restricted Project
glider added a comment to D54604: Automatic variable initialization.

Not sure if a similar problem was mentioned already or not, but the following program:

Jan 29 2019, 8:13 AM · Restricted Project

Jan 25 2019

glider updated the diff for D57158: [RFC] [KASAN] Instrument globals.
Jan 25 2019, 8:36 AM
glider retitled D57158: [RFC] [KASAN] Instrument globals from [KASAN] Instrument globals to [RFC] [KASAN] Instrument globals.
Jan 25 2019, 8:35 AM

Jan 24 2019

glider created D57158: [RFC] [KASAN] Instrument globals.
Jan 24 2019, 8:02 AM

Jan 11 2019

glider abandoned D56171: [MSan] add _nosanitize versions for memory intrinsic implementations.

We've decided to abandon this revision, as non-instrumented functions must still unpoison shadow.

Jan 11 2019, 6:57 AM

Jan 3 2019

glider updated the diff for D56172: [MSan] Implement _nosanitize functions in compiler-rt.

Added a test.

Jan 3 2019, 6:53 AM

Dec 31 2018

glider created D56172: [MSan] Implement _nosanitize functions in compiler-rt.
Dec 31 2018, 5:57 AM
glider created D56171: [MSan] add _nosanitize versions for memory intrinsic implementations.
Dec 31 2018, 5:53 AM
glider committed rL350173: [MSan] Handle llvm.is.constant intrinsic.
[MSan] Handle llvm.is.constant intrinsic
Dec 31 2018, 1:46 AM
glider added a comment to D56159: [MSan] Handle llvm.is.constant intrinsic.

Landed r350173, thank you!

Dec 31 2018, 1:46 AM

Dec 30 2018

glider created D56159: [MSan] Handle llvm.is.constant intrinsic.
Dec 30 2018, 4:43 AM

Dec 24 2018

glider added a comment to D55605: [NewPM] Port Msan: Alternative approach using a module to create the global constructor.

A couple of nits.
I also think the newly added classes should be marked as such, not as structs, but YMMV.

Dec 24 2018, 4:54 AM

Dec 20 2018

glider closed D55888: [MSan] Don't emit __msan_instrument_asm_load() calls in conservative assembly handling mode.

Landed r349734, thank you!

Dec 20 2018, 2:09 AM · Restricted Project
glider committed rL349734: [MSan] Don't emit __msan_instrument_asm_load() calls.
[MSan] Don't emit __msan_instrument_asm_load() calls
Dec 20 2018, 2:08 AM

Dec 19 2018

glider created D55888: [MSan] Don't emit __msan_instrument_asm_load() calls in conservative assembly handling mode.
Dec 19 2018, 6:27 AM · Restricted Project

Dec 5 2018

glider added a comment to D54394: [WIP][NewPM] Port msan.

I think I'm missing some context here.
What is the problem you are trying to solve?

Dec 5 2018, 6:25 AM

Dec 3 2018

glider committed rL348112: [KMSAN] Enable -msan-handle-asm-conservative by default.
[KMSAN] Enable -msan-handle-asm-conservative by default
Dec 3 2018, 2:18 AM

Nov 30 2018

glider updated the diff for D55119: [KMSAN] Enable -msan-handle-asm-conservative by default.

Updated the tests. Those were written with userspace instrumentation in mind, which isn't the case anymore.

Nov 30 2018, 7:38 AM
glider created D55119: [KMSAN] Enable -msan-handle-asm-conservative by default.
Nov 30 2018, 4:27 AM

Nov 19 2018

glider abandoned D54473: [sanitizers] Initial implementation for -fsanitize=init-locals.
Nov 19 2018, 8:29 AM

Nov 14 2018

glider added inline comments to D54473: [sanitizers] Initial implementation for -fsanitize=init-locals.
Nov 14 2018, 5:18 AM
glider added a comment to D54473: [sanitizers] Initial implementation for -fsanitize=init-locals.
In D54473#1297460, @kcc wrote:

This new flag inhibits the warnings from -Wuninitialized, right?
While this is fine for experimenting (and I want to have this in ToT to enable wide experimentation)
we should clearly state (in the comments) that the final intent is to make the feature work together with -Wuninitialized.

No, as far as I can see, the warnings from -Wuninitialized are still present (see the test).

Nov 14 2018, 3:44 AM

Nov 13 2018

glider created D54473: [sanitizers] Initial implementation for -fsanitize=init-locals.
Nov 13 2018, 7:16 AM

Oct 31 2018

glider added a comment to D53811: [MSan] another take at instrumenting inline assembly - now with calls.

Landed r345702, thank you!

Oct 31 2018, 2:35 AM
glider committed rL345702: [MSan] another take at instrumenting inline assembly - now with calls.
[MSan] another take at instrumenting inline assembly - now with calls
Oct 31 2018, 2:35 AM

Oct 30 2018

glider updated the diff for D53811: [MSan] another take at instrumenting inline assembly - now with calls.

Removed the check for InsertChecks.

Oct 30 2018, 2:46 AM
glider added inline comments to D53811: [MSan] another take at instrumenting inline assembly - now with calls.
Oct 30 2018, 2:45 AM

Oct 29 2018

glider updated the diff for D53811: [MSan] another take at instrumenting inline assembly - now with calls.

Moved __msan_instrument_asm_store() before the asm call.

Oct 29 2018, 7:34 AM
glider created D53811: [MSan] another take at instrumenting inline assembly - now with calls.
Oct 29 2018, 5:01 AM

Sep 25 2018

glider created D52497: [MSan] Add meaningful debug locations to [K]MSan hooks poisoning local variables.
Sep 25 2018, 7:48 AM