- Sep 16, 2022
-
-
Lang Hames authored
-
Vitaly Buka authored
-
Fangrui Song authored
As it was disabled due to unsupported feature "clang-driver" before.
-
Dave Lee authored
-
jacquesguan authored
-
jacquesguan authored
-
Fangrui Song authored
%T is a deprecated lit feature. It refers to the parent directory. When two tests in test/Driver refer to the same `%T/foo`, they are racy with each other. %t includes the test name and is safe for use. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D133998
-
Jez Ng authored
This is similar to the `-alias` CLI option, but it gives finer-grained control in that it allows the aliased symbols to be treated as private externs. While working on this, I realized that our `-alias` handling did not cover the cases where the aliased symbol is a common or dylib symbol, nor the case where we have an undefined that gets treated specially and converted to a defined later on. My N_INDR handling neglects this too for now; I've added checks and TODO messages for these. `N_INDR` symbols cropped up as part of our attempt to link swift-stdlib. Reviewed By: #lld-macho, thakis, thevinster Differential Revision: https://reviews.llvm.org/D133825
-
Lang Hames authored
Compiles and moves the original C code for main to Inputs/dlopen-dlclose-x2.S, where it can be shared with other testcases that want a dlopen-dlclose-dlopen-dlclose sequence. The assembly containging the initializers to be tested is moved into the test file.
-
Lang Hames authored
Unlike ExecutorAddr, there's limited value to having a distinct type for ExecutorAddrDiff, and it's occasionally awkward to work with. The corresponding LLVM type (llvm::orc::ExecutorAddrDiff) was already made a type-alias in 9e2cfb06.
-
Gulfem Savrun Yeniceri authored
This is a reland of https://reviews.llvm.org/D122336. Original patch caused a problem in collecting coverage in Fuchsia because it was returning early without putting unused function names into __llvm_prf_names section. This patch fixes that issue. The original commit message is as the following: CoverageMappingModuleGen generates a coverage mapping record even for unused functions with internal linkage, e.g. static int foo() { return 100; } Clang frontend eliminates such functions, but InstrProfiling pass still emits runtime hook since there is a coverage record. Fuchsia uses runtime counter relocation, and pulling in profile runtime for unused functions causes a linker error: undefined hidden symbol: __llvm_profile_counter_bias. Since https://reviews.llvm.org/D98061, we do not hook profile runtime for the binaries that none of its translation units have been instrumented in Fuchsia. This patch extends that for the instrumented binaries that consist of only unused functions. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D122336
-
Brad Smith authored
-
Yuta Mukai authored
The method of counting resource consumption is modified to be based on "Cycles" value when DFA is not used. The calculation of ResMII is modified to total "Cycles" and divide it by the number of units for each resource. Previously, ResMII was excessive because it was assumed that resources were consumed for the cycles of "Latency" value. The method of resource reservation is modified similarly. When a value of "Cycles" is larger than 1, the resource is considered to be consumed by 1 for cycles of its length from the scheduled cycle. To realize this, ResourceManager maintains a resource table for all slots. Previously, resource consumption was always 1 for 1 cycle regardless of the value of "Cycles" or "Latency". In addition, the number of micro operations per cycle is modified to be constrained by "IssueWidth". To disable the constraint, --pipeliner-force-issue-width=100 can be used. For the case of using DFA, the scheduling results are unchanged. Reviewed By: dpenry Differential Revision: https://reviews.llvm.org/D133572
-
Colin Cross authored
Getting the default module cache path calls llvm::sys::path::cache_directory, which calls home_directory, which checks the HOME environment variable before falling back to getpwuid. When compiling against musl libc, which does not support NSS, and running on a machine that doesn't have the current user in /etc/passwd due to NSS, no home directory can be found. Set the HOME environment variable in the tests to avoid depending on getpwuid. Reviewed By: pirama, srhines Differential Revision: https://reviews.llvm.org/D132984
-
Navid Emamdoost authored
Reviewed By: kcc, vitalybuka, MaskRay Differential Revision: https://reviews.llvm.org/D133157
-
Jeffrey Byrnes authored
-
Colin Cross authored
The mbstate_t field in std::fpos is an opaque type provied by libc, and musl's implementation does not match the one used by glibc. Change StdFposPrinter to verify its assumptions about the layout of mbstate_t, and leave out the state printing if it doesn't match. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D132983
-
Aart Bik authored
Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D133971
-
David Green authored
-
rdar://99981102Roy Sundahl authored
These four tests are failing on tvOS devices (not simulators) so XFAIL them for now for CI and investigate further. rdar://99981102 Differential Revision: https://reviews.llvm.org/D133963
-
Amy Huang authored
This is a followup to reviews.llvm.org/D133457.
-
Philip Reames authored
Differential Revision: https://reviews.llvm.org/D133957
-
Philip Reames authored
These should only be immediate values or GPR registers. Differential Revision: https://reviews.llvm.org/D133953
-
Alexander Timofeev authored
This patch contains changes necessary to carry physical condition register (SCC) dependencies through the SDNode scheduler. It adds the edge in the SDNodeScheduler dependency graph instead of inserting the SCC copy between each definition and use. This approach lets the scheduler place instructions in an optimal way placing the copy only when the dependency cannot be resolved. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D133593
-
Vitaly Buka authored
-
Erich Keane authored
While investigating something else, I discovered that a prototypeless function with 'overloadable' was having the attribute left on the declaration, which caused 'ambiguous' call errors later on. This lead to some confusion. This patch removes the 'overloadable' attribute from the declaration and leaves it as prototypeless, instead of trying to make it variadic.
-
Joseph Huber authored
This patch changes the CMake to instead embed the already generated LLVM-IR bitcode library into an object file to create the static library. This is different from the previous method which generated them separately. This will make the build faster and allow us to perform the same internalization into a single library we do with the bitcode library. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D133952
-
Hanhan Wang authored
Custom attributes can be set on the operation. It prevents them to be removed when doing named ops conversion. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D133892
-
Florian Hahn authored
-
Groverkss authored
This patch adds better functions for parsing MultiAffineFunctions and PWMAFunctions in Presburger unittests. A PWMAFunction can now be parsed as: ``` PWMAFunction result = parsePWMAF({ {"(x, y) : (x >= 10, x <= 20, y >= 1)", "(x, y) -> (x + y)"}, {"(x, y) : (x >= 21)", "(x, y) -> (x + y)"}, {"(x, y) : (x <= 9)", "(x, y) -> (x - y)"}, {"(x, y) : (x >= 10, x <= 20, y <= 0)", "(x, y) -> (x - y)"}, }); ``` which is much more readable than the old format since the output can be described as an AffineMap, instead of coefficients. This patch also adds support for parsing divisions in MultiAffineFunctions and PWMAFunctions which was previously not possible. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D133654 -
Philip Reames authored
-
Florian Hahn authored
This patch extends CodeGenPrepare to lower zext v16i8 -> v16i32 in loops using a wide shuffle creating a v64i8 vector, selecting groups of 3 zero elements and an element from the input. This is profitable on AArch64 where such shuffles can be lowered to tbl instructions, but only in loops, because it requires materializing 4 masks, which can be done in the loop preheader. This is the only reason the transform is part of CGP. If there's a better alternative I missed, please let me know. The same goes for the shouldReplaceZExtWithShuffle hook which guards this. I am not sure if this transform will be beneficial on other targets, but it seems like there is no way other convenient way. This improves the generated code for loops like the one below in combination with D96522. int foo(uint8_t *p, int N) { unsigned long long sum = 0; for (int i = 0; i < N ; i++, p++) { unsigned int v = *p; sum += (v < 127) ? v : 256 - v; } return sum; } https://clang.godbolt.org/z/Wco866MjY Reviewed By: t.p.northover Differential Revision: https://reviews.llvm.org/D120571 -
Haojian Wu authored
This reverts commit 10250c5a as the related patch is being reverted.
-
Sergei Barannikov authored
All in-tree targets pass pointer-sized ConstantSDNodes to the method. This overload reduced amount of boilerplate code a bit. This also makes getCALLSEQ_END consistent with getCALLSEQ_START, which already takes uint64_ts.
-
Sanjay Patel authored
This is similar to the existing signed instruction folds. We get the obvious minimal patterns in other passes, but this avoids potential missed folds when the multi-block tests are converted to selects.
-
Sanjay Patel authored
-
Amy Huang authored
This will allow selecting the MS C runtime library without having to use cc1 flags. Differential Revision: https://reviews.llvm.org/D133457
-
Aart Bik authored
Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D133912
-