- Feb 25, 2022
-
-
Fangrui Song authored
-
Craig Topper authored
Saves a 100 bytes or so from the isel table.
-
Michael Wyman authored
Clang `unused-but-set-variable` warnings should not apply to `__attribute__((objc_precise_lifetime))` Objective-C pointers The `objc_precise_lifetime` attribute is applied to Objective-C pointers to ensure the optimizer does not prematurely release an object under Automatic Reference Counting (ARC). It is a common enough pattern to assign values to these variables but not reference them otherwise, and annotating them with `__unused` is not really correct as they are being used to ensure an object's lifetime. Differential Revision: https://reviews.llvm.org/D120372
-
Fangrui Song authored
-
Fangrui Song authored
This is NFC for valid input (COMMON symbols cannot be weak or versioned).
-
Rahman Lavaee authored
This reverts commit 029283c1. The code in `ELFFile::decodeBBAddrMap` was not changed in the submitted patch. Differential Revision: https://reviews.llvm.org/D120457
-
Reid Kleckner authored
-
Sanjay Patel authored
-
Craig Topper authored
-
Fangrui Song authored
GNU as reports `Error: symbol `foo' can not be both weak and common`, though LLVM integrated assembler does not report an error yet.
-
Yitzhak Mandelbaum authored
Adds two new parameters to control the size of data structures modeled in the environment: # of values and depth of data structure. The environment already prevents creation of recursive data structures, but that was insufficient in practice. Very large structs still ground the analysis to a halt. These new parameters allow tuning the size more effectively. In this patch, the parameters are set as internal constants. We leave to a future patch to make these proper model parameters. Differential Revision: https://reviews.llvm.org/D120510
-
Jez Ng authored
This was based off @thakis' draft in {D103517}. I employed templates to ensure the support for `-why_live` wouldn't slow down the regular non-why-live code path. No stat sig perf difference on my 3.2 GHz 16-Core Intel Xeon W: base diff difference (95% CI) sys_time 1.195 ± 0.015 1.199 ± 0.022 [ -0.4% .. +1.0%] user_time 3.716 ± 0.022 3.701 ± 0.025 [ -0.7% .. -0.1%] wall_time 4.606 ± 0.034 4.597 ± 0.046 [ -0.6% .. +0.2%] samples 44 37 Reviewed By: #lld-macho, thakis Differential Revision: https://reviews.llvm.org/D120377 -
Aaron Ballman authored
-
Aaron Ballman authored
This patch adds -Wno-strict-prototypes to all of the test cases that use functions without prototypes, but not as the primary concern of the test. e.g., attributes testing whether they can/cannot be applied to a function without a prototype, etc. This is done in preparation for enabling -Wstrict-prototypes by default.
-
Aaron Ballman authored
A significant number of our tests in C accidentally use functions without prototypes. This patch converts the function signatures to have a prototype for the situations where the test is not specific to K&R C declarations. e.g., void func(); becomes void func(void); This is the final batch of tests being updated to add prototypes, hopefully.
-
Valentin Clement authored
This patch handles lowering of simple array assignment. ``` a(:) = 10 ``` or ``` a(1) = 1 ``` This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld, schweitz Differential Revision: https://reviews.llvm.org/D120501 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D119702
-
Fangrui Song authored
-
Fangrui Song authored
-
Damian Rouson authored
Test a range of acceptable forms of SYNC TEAM statements, including combinations with and without the stat-variable and errmsg-variable present. Also test that several invalid forms of SYNC TEAM call generate the correct error messages. Differential Revision: https://reviews.llvm.org/D120099
-
Alexey Bataev authored
This reverts commit 63893811. Need to fix reported fail https://lab.llvm.org/buildbot/#/builders/193/builds/7496
-
Alexey Bataev authored
Changed the we handle llvm::Constants in sizes arrays. ConstExprs and GlobalValues cannot be used as initializers, need to put them at the runtime, otherwise there wight be the compilation errors. Differential Revision: https://reviews.llvm.org/D105297
-
Yuanfang Chen authored
- Using LLVM_WINSYSROOT would pick up DIA SDK path automatically, otherwise llvm-pdbutil has no DIA support. - Add MSVC_VER to specify VC tools version. - Make MSVC_VER/WINSDK_VER optional. If not specified, use the highest version number like the driver does. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D117852
-
Simon Pilgrim authored
If the shl is at least half the bitwidth (i.e. the lower half of the bswap source is zero), then we can reduce the shift and perform the bswap at half the bitwidth and just zero extend. Based off PR51391 + PR53867 Differential Revision: https://reviews.llvm.org/D120192
-
David Green authored
The old check lines were not showing enough congtext to show issues. Regenerate the test with theua auto-check lines to be clearer.
-
Fangrui Song authored
-
Stanislav Mekhanoshin authored
TODO: merge flat load/stores. TODO: merge flat with global promoting to flat. Differential Revision: https://reviews.llvm.org/D120346
-
Damian Rouson authored
Test a range of acceptable forms of SYNC MEMORY statements, including combinations with and without the stat-variable and errmsg-variable present. Also test that several invalid forms of SYNC MEMORY call generate the correct error messages. Differential Revision: https://reviews.llvm.org/D120097
-
Momchil Velikov authored
This patch is in preparation for the async unwind CFI. Put the first `LDP` the end, so that the load-store optimizer can run and merge the `LDP` and the `ADD` into a post-index `LDP`. Do this always and as early as at the time of the initial creation of the CSR restore instructions, even if that `LDP` is not guaranteed to be mergeable with a subsequent `SP` increment. This greatly simplifies the CFI generation for prologue, as otherwise we have to take extra steps to ensure reordering does not cross CFI instructions. Reviewed By: danielkiss Differential Revision: https://reviews.llvm.org/D112328
-
Stanislav Mekhanoshin authored
Loads and stores can be out of order in the SILoadStoreOptimizer. When combining MachineMemOperands of two instructions operands are sent in the IR order into the combineKnownAdjacentMMOs. At the moment it picks the first operand and just replaces its offset and size. This essentially loses alignment information and may generally result in an incorrect base pointer to be used. Use a base pointer in memory addresses order instead and only adjust size. Differential Revision: https://reviews.llvm.org/D120370
-
Amir Ayupov authored
Introduce an option to expand all CMOV groups into hammocks, matching GCC's `-fno-if-conversion2` flag. The motivation is to leave CMOV conversion opportunities to a binary optimizer that can make the decision based on branch misprediction rate (available e.g. in Intel's LBR). Reviewed By: MaskRay, skan Differential Revision: https://reviews.llvm.org/D119777
-
Benjamin Kramer authored
-
Craig Topper authored
-
Momchil Velikov authored
Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D112327
-
Fangrui Song authored
-
Thomas Raoux authored
This transformation is useful to break dependency between consecutive loop iterations by increasing the size of a temporary buffer. This is usually combined with heavy software pipelining. Differential Revision: https://reviews.llvm.org/D119406
-
Craig Topper authored
Trying to reduce the diffs from D118333 for cases where it makes more sense to use an FP ABI. Reviewed By: asb, kito-cheng Differential Revision: https://reviews.llvm.org/D120447
-
Momchil Velikov authored
The PostRA scheduler can reorder non-CFI instructions in a way that makes the unwind info not instruction precise. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D112326
-
Craig Topper authored
Add a new ISD opcode to represent the sign extending behavior of vmv.x.h. Keep the previous anyext opcode to allow the existing (fmv_x_anyexth (fmv_h_x X)) combine to keep working without needing to generate a sign extend. For fmv.x.w we are able to match the sext_inreg in an isel pattern, but a 16-bit sext_inreg is lowered to a shift pair before isel. This seemed like a larger match than we should do in isel. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D118974
-
Valentin Clement authored
Add lowering for simple assignement on allocatable scalars. This patch is part of the upstreaming effort from fir-dev branch. Depends on D120483 Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D120488 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-