<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp, branch users/nico/python-2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[Instrumentation] Move out to Utils (NFC) (#108532)</title>
<updated>2024-09-16T04:07:40+00:00</updated>
<author>
<name>Antonio Frighetto</name>
<email>10052132+antoniofrighetto@users.noreply.github.com</email>
</author>
<published>2024-09-16T04:07:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2ae968a0d9fb61606b020e898d884c82dd0ed8b5'/>
<id>2ae968a0d9fb61606b020e898d884c82dd0ed8b5</id>
<content type='text'>
Utility functions have been moved out to Utils. Minor opportunity to
drop the header where not needed.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Utility functions have been moved out to Utils. Minor opportunity to
drop the header where not needed.</pre>
</div>
</content>
</entry>
<entry>
<title>[Sanitizer] Create DiagnosticInfoInstrumentation for IR Instrumentation reporting. (#106356)</title>
<updated>2024-09-08T04:40:16+00:00</updated>
<author>
<name>Chaitanya</name>
<email>Krishna.Sankisa@amd.com</email>
</author>
<published>2024-09-08T04:40:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=49e38606cdad9eb2414a41d2b81903f0b516984d'/>
<id>49e38606cdad9eb2414a41d2b81903f0b516984d</id>
<content type='text'>
This PR adds DK_Instrumentation enum to DiagnosticKind and
DiagnosticInfoInstrumentation is extended from DiagnosticsInfo for IR
instrumentation reporting.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds DK_Instrumentation enum to DiagnosticKind and
DiagnosticInfoInstrumentation is extended from DiagnosticsInfo for IR
instrumentation reporting.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][Instrumentation] Use `Twine` in `createPrivateGlobalForString` (#104726)</title>
<updated>2024-08-19T18:24:42+00:00</updated>
<author>
<name>Vitaly Buka</name>
<email>vitalybuka@google.com</email>
</author>
<published>2024-08-19T18:24:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=51785856ec5fb6c3f17834b212086d9fc7183868'/>
<id>51785856ec5fb6c3f17834b212086d9fc7183868</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Sanitizer] Make sanitizer passes idempotent (#99439)</title>
<updated>2024-08-12T05:46:44+00:00</updated>
<author>
<name>Chaitanya</name>
<email>Krishna.Sankisa@amd.com</email>
</author>
<published>2024-08-12T05:46:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=62ced8116ba5274991af0e94cfdf873593c7764d'/>
<id>62ced8116ba5274991af0e94cfdf873593c7764d</id>
<content type='text'>
This PR changes the sanitizer passes to be idempotent. 
When any sanitizer pass is run after it has already been run before,
double instrumentation is seen in the resulting IR. This happens because
there is no check in the pass, to verify if IR has been instrumented
before.

This PR checks if "nosanitize_*" module flag is already present and if
true, return early without running the pass again.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR changes the sanitizer passes to be idempotent. 
When any sanitizer pass is run after it has already been run before,
double instrumentation is seen in the resulting IR. This happens because
there is no check in the pass, to verify if IR has been instrumented
before.

This PR checks if "nosanitize_*" module flag is already present and if
true, return early without running the pass again.</pre>
</div>
</content>
</entry>
<entry>
<title>[Instrumentation][X86] Limit setting large section flag to medium/large code models (#75542)</title>
<updated>2023-12-15T17:46:59+00:00</updated>
<author>
<name>Arthur Eubanks</name>
<email>aeubanks@google.com</email>
</author>
<published>2023-12-15T17:46:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0d948827d773be7e440d1e639ddf42c4d28ab461'/>
<id>0d948827d773be7e440d1e639ddf42c4d28ab461</id>
<content type='text'>
In #74514 and #74778 we marked various instrumentation-added sections as
large. This causes an extra PT_LOAD segment if using the small code
model. Since people using the small code model presumably aren't hitting
relocation limits, disable this when using the small code model to avoid
the extra segment.

This uses Module::getCodeModel() which isn't necessarily reliable since
it reads module metadata (which right now only the clang frontend sets),
but it would be nice to get to a point where we reliably put this sort
of information (e.g. PIC/code model/etc) in the IR. This requires
duplicating the existing tests since opt/llc currently don't set these
metadata. If we get to a point where they do set the code model metadata
based on command line arguments then we can deduplicate these tests.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In #74514 and #74778 we marked various instrumentation-added sections as
large. This causes an extra PT_LOAD segment if using the small code
model. Since people using the small code model presumably aren't hitting
relocation limits, disable this when using the small code model to avoid
the extra segment.

This uses Module::getCodeModel() which isn't necessarily reliable since
it reads module metadata (which right now only the clang frontend sets),
but it would be nice to get to a point where we reliably put this sort
of information (e.g. PIC/code model/etc) in the IR. This requires
duplicating the existing tests since opt/llc currently don't set these
metadata. If we get to a point where they do set the code model metadata
based on command line arguments then we can deduplicate these tests.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][InstrProf] Refactor InstrProfiling lowering pass (#74970)</title>
<updated>2023-12-11T02:03:08+00:00</updated>
<author>
<name>Mircea Trofin</name>
<email>mtrofin@google.com</email>
</author>
<published>2023-12-11T02:03:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1d608fc755a3e15d0020f61c9535c9b730ab9dec'/>
<id>1d608fc755a3e15d0020f61c9535c9b730ab9dec</id>
<content type='text'>
Akin other passes - refactored the name to `InstrProfilingLoweringPass` to better communicate what it does, and split the pass part and the transformation part to avoid needing to initialize object state during `::run`.

A subsequent PR will move `InstrLowering` to the .cpp file and rename it to `InstrLowerer`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Akin other passes - refactored the name to `InstrProfilingLoweringPass` to better communicate what it does, and split the pass part and the transformation part to avoid needing to initialize object state during `::run`.

A subsequent PR will move `InstrLowering` to the .cpp file and rename it to `InstrLowerer`.</pre>
</div>
</content>
</entry>
<entry>
<title>Reland [InstrProf][X86] Mark non-directly accessed globals as large (#74778)</title>
<updated>2023-12-08T17:54:57+00:00</updated>
<author>
<name>Arthur Eubanks</name>
<email>aeubanks@google.com</email>
</author>
<published>2023-12-08T17:33:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=66b919cb29494bca987138a23ef8f0b68bfe9d3c'/>
<id>66b919cb29494bca987138a23ef8f0b68bfe9d3c</id>
<content type='text'>
We'd like to make various instrprof globals large to make them not
contribute to relocation pressure since there are no direct accesses
to them in the module.

Similar to what was done for asan_globals in #74514.

This affects the __llvm_prf_vals, __llvm_prf_vnds, and __llvm_prf_names
sections.

The reland fixes platform.ll.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We'd like to make various instrprof globals large to make them not
contribute to relocation pressure since there are no direct accesses
to them in the module.

Similar to what was done for asan_globals in #74514.

This affects the __llvm_prf_vals, __llvm_prf_vnds, and __llvm_prf_names
sections.

The reland fixes platform.ll.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[InstrProf][X86] Mark non-directly accessed globals as large (#74778)"</title>
<updated>2023-12-08T17:41:31+00:00</updated>
<author>
<name>Arthur Eubanks</name>
<email>aeubanks@google.com</email>
</author>
<published>2023-12-08T17:41:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=96a5135e567a1eaf284706359f0e51efa3db3d51'/>
<id>96a5135e567a1eaf284706359f0e51efa3db3d51</id>
<content type='text'>
This reverts commit 5507f70cc205a7ec21d264a64c703b3d314b998c.

Breaks bots, e.g. https://lab.llvm.org/buildbot/#/builders/232/builds/16374
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 5507f70cc205a7ec21d264a64c703b3d314b998c.

Breaks bots, e.g. https://lab.llvm.org/buildbot/#/builders/232/builds/16374
</pre>
</div>
</content>
</entry>
<entry>
<title>[InstrProf][X86] Mark non-directly accessed globals as large (#74778)</title>
<updated>2023-12-08T17:33:40+00:00</updated>
<author>
<name>Arthur Eubanks</name>
<email>aeubanks@google.com</email>
</author>
<published>2023-12-08T17:33:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5507f70cc205a7ec21d264a64c703b3d314b998c'/>
<id>5507f70cc205a7ec21d264a64c703b3d314b998c</id>
<content type='text'>
We'd like to make various instrprof globals large to make them not
contribute to relocation pressure since there are no direct accesses
to them in the module.

Similar to what was done for asan_globals in #74514.

This affects the __llvm_prf_vals, __llvm_prf_vnds, and __llvm_prf_names
sections.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We'd like to make various instrprof globals large to make them not
contribute to relocation pressure since there are no direct accesses
to them in the module.

Similar to what was done for asan_globals in #74514.

This affects the __llvm_prf_vals, __llvm_prf_vnds, and __llvm_prf_names
sections.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm-c] Remove PassRegistry and initialization APIs</title>
<updated>2023-04-14T10:12:48+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2023-03-01T08:41:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=62ef97e0631ff41ad53436477cecc7d3eb244d1b'/>
<id>62ef97e0631ff41ad53436477cecc7d3eb244d1b</id>
<content type='text'>
Remove C APIs for interacting with PassRegistry and pass
initialization. These are legacy PM concepts, and are no longer
relevant for the new pass manager.

Calls to these initialization functions can simply be dropped.

Differential Revision: https://reviews.llvm.org/D145043
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove C APIs for interacting with PassRegistry and pass
initialization. These are legacy PM concepts, and are no longer
relevant for the new pass manager.

Calls to these initialization functions can simply be dropped.

Differential Revision: https://reviews.llvm.org/D145043
</pre>
</div>
</content>
</entry>
</feed>
