- User Since
- Sep 1 2015, 3:36 AM (176 w, 6 d)
Fri, Jan 18
assume that case is not "obvious" when offset is not zero.
Thu, Jan 17
BTW, does it make sense to make this patch work for static variables first?
I wonder if the same could be achieved with a clever use of ifunc?
Do you mean generating ifunc for each instrumented global and tagging a pointer there?
Wed, Jan 16
Tue, Jan 15
Changed way X0 and X1 are assigned on AArch64
even for internal / non-preemptible globals.
Mon, Jan 14
Addressed review comments
Fri, Jan 11
Mon, Dec 24
Dec 20 2018
Dec 17 2018
Dec 14 2018
Dec 12 2018
Addressed some of review comments
Unfortunately I don't know how to use memset from __hwasan_memset, given this comment in hwasan.cc
// ACHTUNG! No system header includes in this file.
Dec 11 2018
Addressed review comments. Now the patch uses approach identical to ASAN.
ASAN doesn't add prefix in kernel compilation mode (my guess is that memset and friends are part of Linux kernel and are always instrumented in such scenario)
Dec 10 2018
In fact, I changed my mind - let's do __hwasan_memset.
What about kernel compilation mode?
Dec 7 2018
Added test case
Would it be more flexible to use the same approach here?
Dec 5 2018
Could you tell me the commands I need to run to test this?
Dec 4 2018
ASan uses -Wl,-whole-archive to pull all its members
Dec 3 2018
Dec 2 2018
don't think so. It's just symbol interposition. Every module in the process gets the same definition.
Nov 30 2018
How do you do this now?
Nov 29 2018
Nov 28 2018
Unfortunately, this is not an option. I have very custom heap implementation (in fact multiple heap types sharing contiguous memory block), so ASAN heap can't be a drop-in replacement. I'm using manual poisoning and it works pretty well, but have to disable C++ runtime each time I build with ASAN.
Nov 27 2018
Nov 26 2018
Nov 23 2018
Nov 22 2018
Nov 20 2018
Nov 19 2018
Nov 16 2018
Nov 15 2018
Nov 11 2018
Nov 10 2018
Nov 9 2018
Oh, my bad. opt -function-import gets index from llvm-lto2, not from opt -thinlto-bc. Sorry about that
Why won't it work for distributed builds? The read only gvar flag is being serialized out and back in, so shouldn't it show up in the distributed indexes?
Sorry I have to suggest small amendment to this patch before committing after looking test/ThinLTO/X86/distributed_import.ll.
It looks like distributed import is using per-module indexes, so internalization of RO vars will not work correctly. To overcome this
I suggest adding a check for propagateConstants to have been run before marking GV for internalization
Nov 8 2018
- Addressed review comments
- Reverted changes in llvm-link.cpp
- No longer clearing read only attribute on dead variables in propagateConstants. As a result the following tests were updated
- Changed isLive() to isGlobalValueLive() in propagateConstants
Nov 7 2018
Rebased and addressed review comments
Nov 6 2018
the call to propagateConstantsToRefs only on function summaries
I'm not sure why we couldn't import and make a local copy of the aliasee when an alias to it is preserved and/or not eligible to import
Nov 1 2018
Can you please post the *.index.bc file? It is saved before dot, so it should be there
Oct 31 2018
- Addressed review comments
- Added call to propagateConstants to createCombinedModuleSummaryIndex to support -thinlto mode of llvm-lto
Oct 30 2018
Oct 26 2018
Oct 25 2018
I see, yes that explanation makes sense. I suppose on the importing side we could go back and update the linkage for imported variables based on the linkage in the index after the IRMover importing is complete for the module (since the linkage in the index is currently ignored on the importing side). On the exporting side it would get internalized as usual during the index-based internalization. This has the advantage of being more consistent with how we currently internalize based on thin link analysis. Would that not work as expected?
Oct 24 2018
Oct 23 2018
- ReadOnly attribute's been moved to GlobalVarSummary and is calculated on analysis phase
- Added flag to ValueInfo which indicates "constantness" instead of using constant reference counter in FunctionSummary
- Fixed incremental build
- Fixed few issues including GV to GV references
- Fixed bitcode tests and added extra test cases
Oct 18 2018
In fact I think that making this change to shouldPromoteLocalToGlobal on the importing side to get the linkage type from the index would work today
Oct 16 2018
Finally I have some time to work on this again
I've simplified a patch to a large extent and tested it on a number of real applications (see below)
Oct 15 2018
Yeah, I'm also wondering what's this for.
Oct 12 2018
Oct 11 2018
Are those ever expected to reference a blockaddress?