LLVM/project 2ac7c0cclang/test/Instrumentor UnreachableRT.cpp InstrumentorUnreachable.cpp, llvm/include/llvm/Transforms/IPO Instrumentor.h

[Instrumentor] Add unreachable support; unreachable stack trace printing

Allow to instrument unreachable and provide a use case to identify an
unreachable was reached.
DeltaFile
+22-0clang/test/Instrumentor/UnreachableRT.cpp
+21-0llvm/include/llvm/Transforms/IPO/Instrumentor.h
+20-0clang/test/Instrumentor/InstrumentorUnreachable.cpp
+15-0clang/test/Instrumentor/UnreachableRT.json
+12-0llvm/lib/Transforms/IPO/Instrumentor.cpp
+5-1clang/test/Instrumentor/lit.local.cfg
+95-11 files not shown
+100-17 files

LLVM/project d63cf8bclang/test/Instrumentor StackUsageRT.cpp StackUsageRT.json, llvm/include/llvm/Transforms/IPO Instrumentor.h

[Instrumentor] Add Alloca and Function support; stack usage example

This adds support for alloca instrumentation and function pre/post
instrumentation. Alloca support follows load/store support directly.
Functions require special care to determine the insertion points.

Together, we can showcase how the stack high watermark can be profiled,
see InstrumentorStackUsage.cpp.
DeltaFile
+294-7llvm/lib/Transforms/IPO/Instrumentor.cpp
+120-8llvm/include/llvm/Transforms/IPO/Instrumentor.h
+60-0clang/test/Instrumentor/StackUsageRT.cpp
+59-0llvm/test/Instrumentation/Instrumentor/default_config.json
+57-0llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+54-0clang/test/Instrumentor/StackUsageRT.json
+644-152 files not shown
+683-158 files

LLVM/project 63c0b52llvm/include/llvm/Transforms/IPO Instrumentor.h InstrumentorConfigFile.h, llvm/lib/Passes PassBuilderPipelines.cpp

[Instrumentor] Use the pass builder's FileSystem for reading files

In the IO sandbox, the old read calls caused the CI to fail. This
changes uses the PassBuilder's FileSystem the same way other passes
read files from disk (during CI).
DeltaFile
+16-5llvm/lib/Transforms/IPO/InstrumentorConfigFile.cpp
+12-1llvm/lib/Transforms/IPO/Instrumentor.cpp
+7-3llvm/include/llvm/Transforms/IPO/Instrumentor.h
+2-2llvm/lib/Passes/PassBuilderPipelines.cpp
+1-1llvm/include/llvm/Transforms/IPO/InstrumentorConfigFile.h
+38-125 files

LLVM/project a776a5allvm/include/llvm/Transforms/IPO Instrumentor.h InstrumentorConfigFile.h, llvm/lib/Passes PassBuilderPipelines.cpp

[Instrumentor] Use the pass builder's FileSystem for reading files

In the IO sandbox, the old read calls caused the CI to fail. This
changes uses the PassBuilder's FileSystem the same way other passes
read files from disk (during CI).
DeltaFile
+16-5llvm/lib/Transforms/IPO/InstrumentorConfigFile.cpp
+12-1llvm/lib/Transforms/IPO/Instrumentor.cpp
+7-3llvm/include/llvm/Transforms/IPO/Instrumentor.h
+2-2llvm/lib/Passes/PassBuilderPipelines.cpp
+1-1llvm/include/llvm/Transforms/IPO/InstrumentorConfigFile.h
+38-125 files

LLVM/project 0a6ca80clang/test/Instrumentor StackUsageRT.cpp StackUsageRT.json, llvm/include/llvm/Transforms/IPO Instrumentor.h

[Instrumentor] Add Alloca and Function support; stack usage example

This adds support for alloca instrumentation and function pre/post
instrumentation. Alloca support follows load/store support directly.
Functions require special care to determine the insertion points.

Together, we can showcase how the stack high watermark can be profiled,
see InstrumentorStackUsage.cpp.
DeltaFile
+294-7llvm/lib/Transforms/IPO/Instrumentor.cpp
+120-8llvm/include/llvm/Transforms/IPO/Instrumentor.h
+60-0clang/test/Instrumentor/StackUsageRT.cpp
+59-0llvm/test/Instrumentation/Instrumentor/default_config.json
+57-0llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+54-0clang/test/Instrumentor/StackUsageRT.json
+644-152 files not shown
+683-158 files

LLVM/project acb7c44libc/src/__support/macros attributes.h

[libc][NFC] Add `is_constant_evaluated` support for GCC9 (#197327)
DeltaFile
+7-1libc/src/__support/macros/attributes.h
+7-11 files

LLVM/project 0edfd11libc/shared math.h, libc/test/shared shared_math_constexpr_test.cpp shared_math_test.cpp

[libc] Temporarily disable iscanonical, isnan, issignaling in shared/math.h (#197328)

These clashes with same-name macros defined in <math.h>.
DeltaFile
+6-3libc/shared/math.h
+6-3libc/test/shared/shared_math_constexpr_test.cpp
+6-3libc/test/shared/shared_math_test.cpp
+18-93 files

LLVM/project 27dc281libc/src/__support/CPP/type_traits is_constant_evaluated.h, libc/src/__support/macros attributes.h

modify compiler version
DeltaFile
+7-1libc/src/__support/macros/attributes.h
+1-3libc/src/__support/CPP/type_traits/is_constant_evaluated.h
+8-42 files

LLVM/project d3831efcompiler-rt/lib/scudo/standalone/fuzz allocator_fuzzer.cpp CMakeLists.txt

[scudo] Add a generic allocation fuzzer. (#197317)

The fuzzer disabled memory tagging if supported since there is an
unknown problem with trying to create an allocator instance and doing
raw allocate/deallocate calls.
DeltaFile
+95-0compiler-rt/lib/scudo/standalone/fuzz/allocator_fuzzer.cpp
+11-0compiler-rt/lib/scudo/standalone/fuzz/CMakeLists.txt
+106-02 files

LLVM/project 9ee0527clang/test/Instrumentor StackUsageRT.cpp StackUsageRT.json, llvm/include/llvm/Transforms/IPO Instrumentor.h

[Instrumentor] Add Alloca and Function support; stack usage example

This adds support for alloca instrumentation and function pre/post
instrumentation. Alloca support follows load/store support directly.
Functions require special care to determine the insertion points.

Together, we can showcase how the stack high watermark can be profiled,
see InstrumentorStackUsage.cpp.
DeltaFile
+294-7llvm/lib/Transforms/IPO/Instrumentor.cpp
+120-8llvm/include/llvm/Transforms/IPO/Instrumentor.h
+60-0clang/test/Instrumentor/StackUsageRT.cpp
+59-0llvm/test/Instrumentation/Instrumentor/default_config.json
+57-0llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+54-0clang/test/Instrumentor/StackUsageRT.json
+644-152 files not shown
+683-158 files

LLVM/project a10efc9llvm/include/llvm/Transforms/IPO Instrumentor.h InstrumentorConfigFile.h, llvm/lib/Passes PassBuilderPipelines.cpp

[Instrumentor] Use the pass builder's FileSystem for reading files

In the IO sandbox, the old read calls caused the CI to fail. This
changes uses the PassBuilder's FileSystem the same way other passes
read files from disk (during CI).
DeltaFile
+16-5llvm/lib/Transforms/IPO/InstrumentorConfigFile.cpp
+12-1llvm/lib/Transforms/IPO/Instrumentor.cpp
+7-3llvm/include/llvm/Transforms/IPO/Instrumentor.h
+2-2llvm/lib/Passes/PassBuilderPipelines.cpp
+1-1llvm/include/llvm/Transforms/IPO/InstrumentorConfigFile.h
+38-125 files

LLVM/project 2bfc660bolt/test/AArch64 plt-mold-func-symbols.s, llvm/lib/Support APFloat.cpp

Merge branch 'main' into users/jdoerfert/instrumentor_alloca_and_function
DeltaFile
+58-0llvm/unittests/ADT/APFloatTest.cpp
+36-0bolt/test/AArch64/plt-mold-func-symbols.s
+31-0llvm/lib/Support/APFloat.cpp
+15-11llvm/test/MC/AArch64/LFI/reserved.s
+20-0llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
+10-6llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
+170-1711 files not shown
+204-3217 files

LLVM/project 537470elibc/src/__support/CPP/type_traits is_constant_evaluated.h

add Clang9 support
DeltaFile
+2-1libc/src/__support/CPP/type_traits/is_constant_evaluated.h
+2-11 files

LLVM/project e45e228libc/src/__support/CPP/type_traits is_constant_evaluated.h

[libc][NFC] Add `is_constant_evaluated` support for GCC9
DeltaFile
+2-1libc/src/__support/CPP/type_traits/is_constant_evaluated.h
+2-11 files

LLVM/project 84edb83llvm/lib/Target/DirectX/DXILWriter DXILBitcodeWriter.cpp, llvm/lib/Target/DirectX/DirectXIRPasses DXILDebugInfo.cpp

[DirectX][NFC] Move DICompileUnit conversion into DXILDebugInfo (#196451)

In #192574, I added logic for changing versioned language names to
unversioned language names, but did so directly in DXILBitcodeWriter.
This is better done in DXILDebugInfo instead so that, in a future
change, we can check the result of DXILDebugInfo in tests.
DeltaFile
+20-0llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
+1-7llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
+21-72 files

LLVM/project 8be53d4llvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add a global function regexp to limit the instrumentation

Only functions that match the "function_regex" will be instrumented,
or if they have the instrumentation attribute.
DeltaFile
+55-0llvm/test/Instrumentation/Instrumentor/function_regex.ll
+27-12llvm/lib/Transforms/IPO/Instrumentor.cpp
+26-0llvm/test/Instrumentation/Instrumentor/bad_function_regex.json
+26-0llvm/test/Instrumentation/Instrumentor/function_regex.json
+11-0llvm/test/Instrumentation/Instrumentor/bad_function_regexp.ll
+7-1llvm/include/llvm/Transforms/IPO/Instrumentor.h
+152-131 files not shown
+155-147 files

LLVM/project 7c48e49lldb/test/API/functionalities/breakpoint/scripted_bkpt/overrides_resolver TestOverridesResolver.py

[lldb][windows] mark test_overrides_resolver_resolver_cmd as XFAIL (#197285)

Follow up to https://github.com/llvm/llvm-project/pull/195392 to mark
`test_overrides_resolver_resolver_cmd` as XFAIL on Windows, like
`test_overrides_resolver_resolver_python`.
DeltaFile
+1-0lldb/test/API/functionalities/breakpoint/scripted_bkpt/overrides_resolver/TestOverridesResolver.py
+1-01 files

LLVM/project 2b2a638llvm CMakeLists.txt, llvm/include/llvm/ADT APFloat.h

[APFloat] Add exp functions for single and double using exp/expf implementations from LLVM libc. (#190667)

This reapplies #143959 with some changes:
- Only support default rounding modes for now. Other rounding modes will
wait for proper static rounding implementations in LLVM libc.
- Add both single and double precision exp.
DeltaFile
+58-0llvm/unittests/ADT/APFloatTest.cpp
+31-0llvm/lib/Support/APFloat.cpp
+5-0llvm/lib/Support/CMakeLists.txt
+4-0llvm/CMakeLists.txt
+4-0llvm/include/llvm/ADT/APFloat.h
+1-1llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
+103-16 files

LLVM/project 3471515bolt/lib/Rewrite RewriteInstance.cpp, bolt/test/AArch64 plt-mold-func-symbols.s

[BOLT] Account for stubs with symbols in plt (#192716)

LLD and bfd do not generate functions symbols for stubs in PLT. However,
mold does and trips the object discovery to create two functions (BF
then PLTFunc). This can cause symbol to be resoved with BF with
incorrect ADRP immediate field in AArch64.

The issue is described in more detail here:
https://github.com/llvm/llvm-project/issues/192552
DeltaFile
+36-0bolt/test/AArch64/plt-mold-func-symbols.s
+5-2bolt/lib/Rewrite/RewriteInstance.cpp
+1-1bolt/test/X86/plt-mold.test
+42-33 files

LLVM/project e7ae7b5llvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add a global function regexp to limit the instrumentation

Only functions that match the "function_regex" will be instrumented,
or if they have the instrumentation attribute.
DeltaFile
+55-0llvm/test/Instrumentation/Instrumentor/function_regex.ll
+27-12llvm/lib/Transforms/IPO/Instrumentor.cpp
+26-0llvm/test/Instrumentation/Instrumentor/function_regex.json
+26-0llvm/test/Instrumentation/Instrumentor/bad_function_regex.json
+11-0llvm/test/Instrumentation/Instrumentor/bad_function_regexp.ll
+7-1llvm/include/llvm/Transforms/IPO/Instrumentor.h
+152-131 files not shown
+155-147 files

LLVM/project a9c655dllvm/include/llvm/MC MCLFIRewriter.h, llvm/lib/MC MCLFIRewriter.cpp

[LFI] Report reserved register modification in error message (#195160)

Reports the name of the modified reserved register in the error message.
Updates the MCLFIRewriter error infrastructure to take a Twine for this.
Also adds a warning function, which will be useful in future cases where
the rewriter sees an unknown instruction/addressing mode, but will pass
it through anyway.

Fixes #192027.
DeltaFile
+15-11llvm/test/MC/AArch64/LFI/reserved.s
+10-6llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
+6-1llvm/lib/MC/MCLFIRewriter.cpp
+3-2llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.h
+3-1llvm/include/llvm/MC/MCLFIRewriter.h
+37-215 files

LLVM/project 85826d8llvm/lib/Target/WebAssembly WebAssemblyGISel.td, llvm/lib/Target/WebAssembly/GISel WebAssemblyLegalizerInfo.cpp

Implement saturating fp to int
DeltaFile
+424-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fptoui_sat.ll
+418-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fptosi_sat.ll
+6-12llvm/lib/Target/WebAssembly/GISel/WebAssemblyLegalizerInfo.cpp
+13-0llvm/lib/Target/WebAssembly/WebAssemblyGISel.td
+861-124 files

LLVM/project 9b89890llvm/lib/Target/WebAssembly/GISel WebAssemblyLegalizerInfo.cpp, llvm/test/CodeGen/WebAssembly/GlobalISel/instructions is_fpclass.ll fcmp.ll

Implement floating-point comparisons
DeltaFile
+490-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/is_fpclass.ll
+436-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fcmp.ll
+308-0llvm/lib/Target/WebAssembly/GISel/WebAssemblyLegalizerInfo.cpp
+225-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fminimumnum.ll
+219-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fmaximumnum.ll
+55-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fminnum.ll
+1,733-03 files not shown
+1,852-09 files

LLVM/project 03fdf93llvm/lib/Target/WebAssembly WebAssemblyRegisterInfo.cpp, llvm/lib/Target/WebAssembly/GISel WebAssemblyInstructionSelector.cpp

Implement `COPY`
DeltaFile
+218-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/copy.mir
+28-1llvm/lib/Target/WebAssembly/GISel/WebAssemblyInstructionSelector.cpp
+17-2llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp
+263-33 files

LLVM/project 75cf0a1llvm/test/CodeGen/WebAssembly/GlobalISel/instructions icmp.ll select.ll

Implement integer comparisons and `G_SELECT`
DeltaFile
+277-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/icmp.ll
+94-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/select.ll
+89-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/ucmp.ll
+81-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/scmp.ll
+77-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/umax.ll
+77-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/umin.ll
+695-03 files not shown
+857-09 files

LLVM/project 3210031clang/test/Instrumentor StackUsageRT.cpp StackUsageRT.json, llvm/include/llvm/Transforms/IPO Instrumentor.h

[Instrumentor] Add Alloca and Function support; stack usage example

This adds support for alloca instrumentation and function pre/post
instrumentation. Alloca support follows load/store support directly.
Functions require special care to determine the insertion points.

Together, we can showcase how the stack high watermark can be profiled,
see InstrumentorStackUsage.cpp.
DeltaFile
+294-7llvm/lib/Transforms/IPO/Instrumentor.cpp
+120-8llvm/include/llvm/Transforms/IPO/Instrumentor.h
+60-0clang/test/Instrumentor/StackUsageRT.cpp
+59-0llvm/test/Instrumentation/Instrumentor/default_config.json
+57-0llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+54-0clang/test/Instrumentor/StackUsageRT.json
+644-152 files not shown
+683-158 files

LLVM/project 5f47bf8llvm/include/llvm/Transforms/IPO Instrumentor.h InstrumentorConfigFile.h, llvm/lib/Passes PassBuilderPipelines.cpp

[Instrumentor] Use the pass builder's FileSystem for reading files

In the IO sandbox, the old read calls caused the CI to fail. This
changes uses the PassBuilder's FileSystem the same way other passes
read files from disk (during CI).
DeltaFile
+16-5llvm/lib/Transforms/IPO/InstrumentorConfigFile.cpp
+12-1llvm/lib/Transforms/IPO/Instrumentor.cpp
+7-3llvm/include/llvm/Transforms/IPO/Instrumentor.h
+2-2llvm/lib/Passes/PassBuilderPipelines.cpp
+1-1llvm/include/llvm/Transforms/IPO/InstrumentorConfigFile.h
+38-125 files

LLVM/project c0792f3clang/test/CXX/drs cwg9xx.cpp, clang/www cxx_dr_status.html

[clang][NFC] Mark CWG941 as implemented and add a test (#197202)

[CWG941](https://wg21.link/cwg941) allowed specializing deleted function
templates. Clang accepted this between 2.7 and 2.9, regressed and
started emitting redefinition errors between 3.0 and 3.8, then went back
to accepting in 3.9: https://godbolt.org/z/GKnf9je7j. I've marked it as
implemented since 3.9.
DeltaFile
+28-0clang/test/CXX/drs/cwg9xx.cpp
+1-1clang/www/cxx_dr_status.html
+29-12 files

LLVM/project 6008312llvm/lib/Target/PowerPC PPCISelLowering.cpp PPCInstrInfo.td

Also add pattern for LWAT.
DeltaFile
+0-53llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+23-10llvm/lib/Target/PowerPC/PPCInstrInfo.td
+0-11llvm/lib/Target/PowerPC/PPCInstr64Bit.td
+23-743 files

LLVM/project 2cb2dd4llvm/test/Object zos-archive-read.test

Fix z/OS archive test failure on macOS (#197290)

Fixes failures introduced by #187110.
- https://lab.llvm.org/buildbot/#/builders/190/builds/42544
- https://lab.llvm.org/buildbot/#/builders/23/builds/19989
-
https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8682002400978909393/+/u/clang/test/stdout


The original test hit a "file to small" error on macOS before hitting
the expected "truncated or malformed archive" error. This patch updates
the test to generate a valid archive then truncates it to 28 bytes so
that its large enough to pass the initial size check but too small for
the 60-byte member header, so it correctly hits the expected failure on
all platforms.
DeltaFile
+4-2llvm/test/Object/zos-archive-read.test
+4-21 files