[CMake][LLVM] Add PCH infrastructure and LLVMSupport PCH (#176420)
This patch implements PCH support. PCH is enabled by default, unless
noted below, and can be disabled with
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON.
* Libraries can define precompiled headers using a newly added
PRECOMPILE_HEADERS keyword. If specified, the listed headers will be
compiled into a pre-compiled header using standard CMake mechanisms.
* Libraries that don't define their own PRECOMPILE_HEADERS but directly
depend on a library or component that defines its own PCH will reuse
that PCH. This reuse is not transitive to prevent excessive use of
unrelated headers. If multiple dependencies provide a reusable PCH, the
first one with the longest dependency chain (stored in the CMake target
property LLVM_PCH_PRIORITY) is used. However, due to CMake limitations,
only PCH from targets that are already defined can be reused; therefore
libraries that should reuse a PCH must be defined later in the CMake
file (=> add_subdirectory order matters).
[34 lines not shown]
AMDGPU/GlobalISel: Regbanklegalize rules for INTRIN_IMAGE
Regbanklegalize rules for INTRIN_IMAGE loads and stores.
Because of very large number of different type signatures, rule specifies
only function for lowering (waterfall lowering of RsrcIdx operand if needed)
and this function also applies register banks.
[NFC][SPIRV] Replace uses of `removeFromParent` by `eraseFromParent` (#182330)
`removeFromParent` doesn't deallocate the resources associated with the
`MachineInstruction`.
I was not able to remove all the uses of `removeFromParent` in the file;
but these are the safe ones.
There is an extra advantage with `eraseFromParent`: If we reuse the
deleted instruction the address sanitizer will catch the mistake.
www/access-log-exporter: Add new port
access-log-exporter is a Prometheus exporter that receives web server
access logs via syslog and converts them into metrics.
access-log-exporter processes logs from multiple web servers and has
undergone testing with Nginx and Apache HTTP Server 2.4. It supports
flexible metric configuration through presets and provides comprehensive
monitoring capabilities for web traffic analysis.
firewall: fix running into error using well known protocols with "-" in them #9835
The ordering is debatable. For now just make sure that we didn't miss the
chance to look up the original one and accept it as is.
[analyzer] Remove the alpha.core.FixedAddr checker (#182033)
This checker is way to simplistic. It's also alpha. I don't think it's
worth for anyone keeping it, especially that we have an
`optin.core.FixedAddressDereference` checker that largely supresedes
this alpha checker.
I propose the removal of this checker.
Also relates to:
https://github.com/llvm/llvm-project/pull/181858#discussion_r2818756964
[CIR] Handle Type::OverflowBehavior in CIR CodeGen
Add handling for the newly introduced Type::OverflowBehavior type class
in CIRGenItaniumCXXABI.cpp and CIRGenFunction.cpp switch statements to
fix -Werror,-Wswitch compilation errors.
[InstCombine] Do not perform fcmp -> icmp transformation if denormal inputs may be flushed (#181899)
Commit 4827771234276 added the following transformation:
fcmp oeq/une (bitcast X), 0.0 --> (and X, SignMaskC) ==/!= 0
This transformation is only valid if denormal inputs are preserved. If
they are flushed, the two comparisons can return different results.
---------
Co-authored-by: Justin Holewinski <jholewinski at nvidia.com>
[ASan] Fix test IsPoisonedDoesNotCrashOnMemoryBoundaries for 32-bit targets (#182412)
Make sure there is no address space overflow in the test on 32-bit platforms.
32-bit: __asan_region_is_poisoned(0xffffffff, 1) fails since 0xffffffff + 1 = 0x0
[MLIR][Python] Remove redundant methods (#182459)
At the moment, Pylance reports errors in `ir.pyi`, saying that some
overloaded methods are invalid. After looking into it, I found that some
of these methods have duplicate signatures and are defined more than
once. This PR is mainly to clean up those methods.
hwpstate_amd(4): Fix punctuation in 'desired_performance' knob's description
To be consistent with that of the others.
No functional change.
Sponsored by: The FreeBSD Foundation
hwpstate_amd(4): CPPC: Switch the default to maximum performance
Set controls to maximum performance to avoid regressions now that CPPC
is activated by default and to match what the P-state support does.
Relnotes: yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55253
cpufreq(4): cpufreq_levels_sysctl(): Remove always false NULL test
'sc->levels_buf' is initialized with malloc(M_WAITOK), so can never be
NULL. Another sysctl handler function (cpufreq_curr_sysctl()) already
relies on that.
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
hwpstate_amd(4): CPPC: Allow attaching even if CAPABILITY_1 cannot be read
If that MSR cannot be read, we fallback to defaults specified by the
ACPI specification, as we are already doing when the minimum and maximum
values in there look bogus.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D55252
hwpstate_amd(4): Consistency of cached CPPC_REQUEST value
If writing to the CPPC_REQUEST MSR fails, make sure we do not set the
softc's 'cppc.request' field to the intended new value. Both
set_cppc_request_cb() and enable_cppc_cb() were changed to this effect.
In case enable_cppc_cb() could not read CPPC_REQUEST, mark that through
a new softc flag, HWPFL_CPPC_REQUEST_NOT_READ, so that we do not keep
and use a wrong value when the content of CPPC_REQUEST is read/written
through sysctl(9) knobs, but instead retry reading the MSR (this is the
purpose of the new get_cppc_request() sub-function).
When setting CPPC_REQUEST has failed, distinguish the case where it
could not be read at all from the case where it could not be written, by
respectively returning EIO and EOPNOTSUPP in these cases. The previous
return value of EFAULT was confusing as sysctl(3) documents it as
happening if the passed arguments are invalid.
While here, add some herald comment before sysctl_cppc_dump_handler()
[5 lines not shown]
[mlir][tosa] Improve broadcasting behaviour in elementwise folders (#181114)
This commit aims to improve elementwise folder behaviour when
broadcasting is involved. In particular, it ensures correctness of
folders when the input operands are dynamic and it is not clear whether
broadcasting is involved.
For example, previously, the tosa.add folder could result in shape
information loss:
```
func.func @test(%arg0: tensor<?x4xi32>) -> tensor<?x4xi32> {
%one = "tosa.const"() {values = dense<0> : tensor<2x1xi32>} : () -> tensor<2x1xi32>
%div = tosa.add %one, %arg0 : (tensor<2x1xi32>, tensor<?x4xi32>) -> tensor<?x4xi32>
return %div : tensor<?x4xi32>
}
$ mlir-opt --canonicalize test.mlir
func.func @test(%arg0: tensor<?x4xi32>) -> tensor<?x4xi32> {
[15 lines not shown]