History log of /llvm-project/llvm/test/Instrumentation/InstrProfiling/icall-comdat.ll (Results 1 – 8 of 8)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init
# 0d948827 15-Dec-2023 Arthur Eubanks <aeubanks@google.com>

[Instrumentation][X86] Limit setting large section flag to medium/large code models (#75542)

In #74514 and #74778 we marked various instrumentation-added sections as
large. This causes an extra PT_

[Instrumentation][X86] Limit setting large section flag to medium/large code models (#75542)

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.

show more ...


# 66b919cb 08-Dec-2023 Arthur Eubanks <aeubanks@google.com>

Reland [InstrProf][X86] Mark non-directly accessed globals as large (#74778)

We'd like to make various instrprof globals large to make them not
contribute to relocation pressure since there are no d

Reland [InstrProf][X86] Mark non-directly accessed globals as large (#74778)

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.

show more ...


# 96a5135e 08-Dec-2023 Arthur Eubanks <aeubanks@google.com>

Revert "[InstrProf][X86] Mark non-directly accessed globals as large (#74778)"

This reverts commit 5507f70cc205a7ec21d264a64c703b3d314b998c.

Breaks bots, e.g. https://lab.llvm.org/buildbot/#/builde

Revert "[InstrProf][X86] Mark non-directly accessed globals as large (#74778)"

This reverts commit 5507f70cc205a7ec21d264a64c703b3d314b998c.

Breaks bots, e.g. https://lab.llvm.org/buildbot/#/builders/232/builds/16374

show more ...


# 5507f70c 08-Dec-2023 Arthur Eubanks <aeubanks@google.com>

[InstrProf][X86] Mark non-directly accessed globals as large (#74778)

We'd like to make various instrprof globals large to make them not
contribute to relocation pressure since there are no direct

[InstrProf][X86] Mark non-directly accessed globals as large (#74778)

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.

show more ...


Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4
# 401f7680 23-Feb-2023 Qiongsi Wu <qwu@ibm.com>

[PGO] Setting ValueProfNode Array's Alignment

`instrprof` currently does not set `__llvm_prf_vnds`'s alignment after creating it. The consequence is that the alignment is set to 16 later (https://gi

[PGO] Setting ValueProfNode Array's Alignment

`instrprof` currently does not set `__llvm_prf_vnds`'s alignment after creating it. The consequence is that the alignment is set to 16 later (https://github.com/llvm/llvm-project/blob/c0f3ac1d0015fd051144a987ff500b888a32be86/llvm/lib/IR/DataLayout.cpp#L1019). This can lead to undefined behaviour when we calculate `NumVNodes` in `lprofGetLoadModuleSignature` (https://github.com/llvm/llvm-project/blob/c0f3ac1d0015fd051144a987ff500b888a32be86/compiler-rt/lib/profile/InstrProfilingMerge.c#L32). The reason is that when the `__llvm_prf_vnds` array is 16 byte aligned, `__llvm_profile_end_vnodes() - __llvm_profile_begin_vnodes()` may not be a multiple of the size of ValueProfNode (which is 24, 20 on 32 bit targets).

This patch sets `__llvm_prf_vnds`'s alignment to its ABI alignment, which always divides its size. Then `__llvm_profile_end_vnodes() - __llvm_profile_begin_vnodes()` will be a multiple of `sizeof(ValueProfNode)`.

Reviewed By: w2yehia, MaskRay

Differential Revision: https://reviews.llvm.org/D144302

show more ...


Revision tags: llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init
# 9ff36df5 16-Jul-2022 Fangrui Song <i@maskray.me>

[PGO][InstrProf][test] Convert to opaque pointers and fix some stale tests


# acead46a 16-Jul-2022 Fangrui Song <i@maskray.me>

[test] Migrate legacy InstrProfiling tests to new PM


Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2
# 2f7ea054 19-Aug-2021 Fangrui Song <i@maskray.me>

[test] Split icall.ll into comdat/nocomdat variants

darwin/aix don't support comdat. Using IR comdat is incorrect.