- Feb 01, 2024
-
-
Billy Laws authored
Created using spr 1.3.4 [skip ci]
-
- Jan 31, 2024
-
-
Billy Laws authored
Created using spr 1.3.4 [skip ci]
-
Billy Laws authored
ARM64EC varargs calls expect that x4 = sp at entry, special handling is needed to ensure this with tail calls since they occur after the epilogue and the x4 write happens before. I tried going through AArch64MachineFrameLowering for this, hoping to avoid creating the dummy object but this was the best I could do since the stack info that uses isn't populated at this stage, CreateFixedObject also explicitly forbids 0 sized objects.
-
Carl Peto authored
- Sema::isSimpleTypeSpecifier return true for _Bool in c99 (currently returns false for _Bool, regardless of C dialect). (Fixes #72203) - replace the logic with a check for simple types and a proper check for a valid keyword in the appropriate dialect Co-authored-by:Carl Peto <CPeto@becrypt.com>
-
Maksim Panchenko authored
Check if program header addresses fall into the kernel space to detect a Linux kernel binary on x86-64. Delete opts::LinuxKernelMode and use BinaryContext::IsLinuxKernel instead.
-
Yaraslau authored
Closes https://github.com/llvm/llvm-project/issues/64144 Instead of checking for `nullptr` we need to ensure that `JobList` is not empty to proceed
-
Jakub Kuderski authored
Keep the conversion target to allow for checking if the op is legal.
-
rmarker authored
The dump_format_style.py script generates the clang-format style options documentation. There was an issue where the script could include spurious characters in the output when run in windows. It appears that it wasn't defaulting to the correct encoding when reading the input. This has been addressed by explicitly setting the encoding when opening the file.
-
Michael Spencer authored
Without this scanning will continue and later hit an assert that the number of `RedirectingFileSystem`s matches the number of -ivfsoverlay arguments.
-
Kai Sasaki authored
The previous PR was not correct on the way to handle the negative value. It is necessary to take the absolute value of the given real (or imaginary) part to be multiplied with the sqrt part. See: https://github.com/llvm/llvm-project/pull/76316
-
Katherine Rasmussen authored
Add image_index to the list of intrinsic functions and add additional check on its args in check-call.cpp. Add two semantics tests for image_index.
-
Jacek Caban authored
The loader can usually handle an unaligned import dir chunk, but It's not optimal and it's not what MSVC link.exe does. Windows refuses to load ARM64X binaries with unaligned import directory. aarch64 and arm64ec imports are shared in such binaries as much as possible. As long as they use the same set of functions from given import directory, both the directory and import addresses chunk are just shared. When used set of functions differs, ARM64X dynamic relocations are used to modify import dir to point to different names and import addresses for its EC view. I suspect that the loader expects some alignment on ARM64X dynamic relocation offset and may not be the case when relocated import dir is not aligned.
-
jkorous-apple authored
This adds a missing CHECK-NOT directive for an existing test case.
-
Michael Spencer authored
`-ivfsoverlay` files are unused when building most modules. Enable removing them by, * adding a way to visit the filesystem tree with extensible RTTI to access each `RedirectingFileSystem`. * Adding tracking to `RedirectingFileSystem` to record when it actually redirects a file access. * Storing this information in each PCM. Usage tracking is only enabled when iterating over the source manager and affecting modulemaps. Here each path is stated to cause an access. During scanning these stats all hit the cache.
-
Nick Desaulniers authored
I suspect this is a bug in linux 4.19, as the test passes as written on my linux 6.5 machine. Let's revisit this after the build bots are upgraded. Link: #80073
-
Valentin Clement authored
2.9.1 The trip count for all loops associated with the collapse clause must be computable and invariant in all the loops. This patch checks that loops part of a collapse nest does not depends on outer loops induction variables. The check is also applied to combined construct with a loop.
-
yronglin authored
This patch dump the rewritten sub-expressions in `CXXDefaultArgExpr` and `CXXDefaultInitExpr`. This machinery is useful for checking whether the materialized temporaries is lifetime-extended in the sub-AST of `CXXDefaultArgExpr` (`CXXDefaultInitExpr` has not been lifetime extendend now). Signed-off-by:yronglin <yronglin777@gmail.com>
-
jkorous-apple authored
We are not interested in nonpointers being added to.
-
Felipe de Azevedo Piovezan authored
TableEntry names are pointers into the string table section, and accessing their length requires a search for `\0`. However, 99% of the time we only need to compare the name against some other other, and such a comparison will fail as early as the first character. This commit adds a method to the interface of TableEntry so that such a comparison can be done without extracting the full name. It saves 10% in the time (1250ms -> 1100 ms) to evaluate the following expression. ``` lldb \ --batch \ -o "b CodeGenFunction::GenerateCode" \ -o run \ -o "expr Fn" \ -- \ clang++ -c -g test.cpp -o /dev/null &> output ```
-
Schrodinger ZHU Yifan authored
fixes #79336 Co-authored-by:Sirui Mu <msrlancern@gmail.com>
-
Maksim Levental authored
-
PiJoules authored
32-bit ARMv6 with thumb doesn't support MULHS/MUL_LOHI as legal/custom nodes during expansion which will cause fixed point multiplication of _Accum types to fail with fixed point arithmetic. Prior to this, we just happen to use fixed point multiplication on platforms that happen to support these MULHS/MUL_LOHI. This patch attempts to check if the multiplication can be done via libcalls, which are provided by the arm runtime. These libcall attempts are made elsewhere, so this patch refactors that libcall logic into its own functions and the fixed point expansion calls and reuses that logic.
-
Fangrui Song authored
Fix #79283: `test/dfsan/custom.cpp` has undefined symbol linker errors on glibc 2.38 due to lack of wrappers for `__isoc23_strtol` and `__isoc23_scanf` family functions. Implement these wrappers as aliases to existing wrappers, similar to https://reviews.llvm.org/D158943 for other sanitizers. `strtol` in a user program, whether or not `_ISOC2X_SOURCE` is defined, uses the C23 semantics (`strtol("0b1", 0, 0)` => 1), when `libclang_rt.dfsan.a` is built on glibc 2.38+.
-
Fangrui Song authored
Modify #77393 to clear shadow memory using `llvm.memset.*` when the size is large, similar to `shouldUseBZeroPlusStoresToInitialize` in clang for `-ftrivial-auto-var-init=`. The intrinsic, if lowered to libcall, will use the msan interceptor. The instruction selector lowers a `StoreInst` to multiple stores, not utilizing `memset`. When the size is large (e.g. `store { [100 x i32] } zeroinitializer, ptr %12, align 1`), the generated code will be long (and `CodeGenPrepare::optimizeInst` will even crash for a huge size). ``` // Test stack size template <class T> void DoNotOptimize(const T& var) { // deprecated by https://github.com/google/benchmark/pull/1493 asm volatile("" : "+m"(const_cast<T&>(var))); } int main() { using LargeArray = std::array<int, 1000000>; auto large_stack = []() { DoNotOptimize(LargeArray()); }; /////// CodeGenPrepare::optimizeInst triggers an assertion failure when creating an integer type with a bit width>2**23 large_stack(); } ``` -
Valentin Clement authored
This reverts commit 0fa4463e. Breaks buildbot https://lab.llvm.org/buildbot/#/builders/268/builds/7155
-
Valentin Clement (バレンタイン クレメン) authored
2.9.1 The trip count for all loops associated with the collapse clause must be computable and invariant in all the loops. This patch checks that iteration range of loops part of a collapse nest does not depend on outer loops induction variables. The check is also applied to combined construct with a loop.
-
Yitzhak Mandelbaum authored
The CFG orders the blocks of loop bodies before those of loop successors (both numerically, and in the successor order of the loop condition block). So, RPO necessarily reverses that order, placing the loop successor *before* the loop body. For many analyses, particularly those that converge to a fixpoint, this results in potentially significant extra work, because loop successors will necessarily need to be reconsidered once the algorithm has reached a fixpoint on the loop body. This definition of CFG graph traits reverses the order of children, so that loop bodies will come first in an RPO. Then, the algorithm can fully evaluate the loop and only then consider successor blocks.
-
michaelrj-google authored
It appears that sys_epoll_pwait2 isn't always available, so we need to add some sort of condition to enable it. This patch disables it until that happens.
-
Yitzhak Mandelbaum authored
As per the FIXME, this cap never really served its purpose. This patch simplifies to a single, caller-specified, absolute cap.
-
LLVM GN Syncbot authored
-
erichkeane authored
Previously we gave up immediately and just escaped. Instead, skip to the next close paren and see if we can continue parsing the next clause instead.
-
erichkeane authored
The 'wait' clause is parsed the same way as the 'wait' construct, so this jsut differs to that function.
-
Shilei Tian authored
-
Aiden Grossman authored
This patch adds two new repetition modes to llvm-exegesis, particularly loop and duplicate repetition modes of what I am terming the middle half repetition mode. The middle half repetition mode essentially runs each measurement twice, one with twice the number of iterations of the other. These two measurements are then agregated by taking their difference. This subtracts away any setup/overhead that is unrelated to the code in the snippet, providing more accurate results. Using this mode on a couple toy examples, I am able to get exact (integer) throughput values on all of them in contrast to the default duplicate/loop repetition modes which show a little bit of noise on the snippet value.
-
Shilei Tian authored
[AMDGPU][AsmParser] Allow `v_writelane_b32` to use SGPR and M0 as source operands at the same time (#78827) Currently the asm parser takes `v_writelane_b32 v1, s13, m0` as illegal instruction for pre-gfx11 because it uses two constant buses while the hardware can only allow one. However, based on the comment of `AMDGPUInstructionSelector::selectWritelane`, it is allowed to have M0 as lane selector and a SGPR used as SRC0 because the lane selector doesn't count as a use of constant bus. In fact, codegen can already generate this form, but this inconsistency is not exposed because the validation of constant bus limitation only happens when paring an assembly but we don't have a test case when both SGPR and M0 used as source operands for the instruction.
-
Craig Topper authored
rv32zbb-valid.s tests rv64 and rv32. rv32zbb-only-valid.s only tests rv32. The rori tests in rv32zbb-only-valid.s produce the same result for rv32 and rv64 so its better to test them in rv32zbb-valid.s. Remove a now redundant test case from rv64zbb-valid.s. Add a missing rori test with imm >= 32 to rv64zbkb-valid.s.
-
Jinsong Ji authored
An extra int was copied.
-
Peiming Liu authored
-
Chelsea Cassanova authored
The `total` parameter for the constructor for Progress was changed to a std::optional in https://github.com/llvm/llvm-project/pull/77547. It was originally set to 1 to indicate non-determinisitic progress, but this commit changes this. First, `UINT64_MAX` will again be used for non-deterministic progress, and `Progress` now has a static variable set to this value so that we can use this instead of a magic number. The member variable `m_total` could be changed to a std::optional as well, but this means that the `ProgressEventData::GetTotal()` (which is used for the public API) would either need to return a std::optional value or it would return some specific integer to represent non-deterministic progress if `m_total` is std::nullopt.
-
Joseph Huber authored
Summary: This logic was wrong and accidentally appling to OpenCL.
-