- Aug 25, 2020
-
-
Sam Parker authored
Add a run to measure the code size cost of arithmetic instructions and add a function for i1 types.
-
Sam Parker authored
global_vars_see_dict -> global_vars_seen_dict
-
Georgii Rymar authored
Currently, when a program header type is unknown, we dont print anything: ``` ProgramHeader { Type: (0x60000000) ``` With this patch the output will be: ``` ProgramHeader { Type: Unknown (0x60000000) ``` It was discussed in D85526 and consistent with what we print for '--sections' already, e.g.: ``` Section { Name: .sec Type: Unknown (0x7FFFFFFF) } ``` Differential revision: https://reviews.llvm.org/D86213 -
Roman Lebedev authored
Much like with it's sibling fold HI-of-insertvalues, it appears to be much more worthwhile than it would seem.
-
Benjamin Kramer authored
This reverts commit 557b890f. Causing miscompiles, test case is on llvm-commits.
-
Hans Wennborg authored
It broke Chromium's llvm build: CMake Error at lib/Support/CMakeLists.txt:13 (string): string sub-command REGEX, mode REPLACE: regex "^()" matched an empty string. Call Stack (most recent call first): lib/Support/CMakeLists.txt:223 (get_system_libname) This reverts commit 2b3807d8 / https://reviews.llvm.org/D86434
-
Georgii Rymar authored
This allows to get rid of "Invalid data was encountered while parsing the file" error reported in cases when sh_size/sh_offset of sections are broken. Differential revision: https://reviews.llvm.org/D86451
-
Yang Zhihui authored
ouput -> output Reviewed By: thopre Differential Revision: https://reviews.llvm.org/D86504
-
OCHyams authored
Fixes PR46575. Bump statistics version to 6. Without this patch, for a variable described with a location list the stat 'sum_all_variables(#bytes in parent scope covered by DW_AT_location)' is calculated by summing all bytes covered by the location ranges in the list and capping the result to the number of bytes in the parent scope. With the patch, only bytes which overlap with the parent DIE scope address ranges contribute to the stat. A new stat 'sum_all_variables(#bytes in any scope covered by DW_AT_location)' has been added which displays the total bytes covered when ignoring scopes.
-
David Sherwood authored
In getCastInstrCost when the instruction is a truncate we were relying upon the implicit TypeSize -> uint64_t cast when asking if a given type has the same size as a legal integer. I've changed the code to only ask the question if the type is fixed length. I have also changed InstCombinerImpl::SimplifyDemandedUseBits to bail out for now if the type is a scalable vector. I've added the following new tests: Analysis/CostModel/AArch64/sve-trunc.ll Transforms/InstCombine/AArch64/sve-trunc.ll for both of these fixes. Differential revision: https://reviews.llvm.org/D86432
-
Florian Hahn authored
Currently we repeatedly check the same uses for read clobbers in some cases. We can avoid unnecessary checks by keeping track of the memory accesses we already found read clobbers for. To do so, we just add memory access causing read-clobbers to a set. Note that marking all visited accesses as read-clobbers would be to pessimistic, as that might include accesses not on any path to the actual read clobber. If we do not find any read-clobbers, we can add all visited instructions to another set and use that to skip the same accesses in the next call. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D75025
-
Roman Lebedev authored
As per statistic, this happens pretty exceedingly rare, but i have seen it in exactly the situations the Phi-aware aggregate reconstruction would have handled, eventually, and allowed invoke -> call fold later on. So while this might be something that other fold will have to learn about, i believe we should be doing this transform in general. Here, we are okay with adding two PHI's to get both the base aggregate, and the inserted value. I'm not sure it makes much sense to restrict it to a single phi (to just the inserted value?), because originally we'd be receiving the final aggregate already.. llvm test-suite + RawSpeed: ``` | statistic name | baseline | proposed | Δ | % | \|%\| | |--------------------------------------------|-----------|-----------|-----:|-------:|------:| | instcombine.NumPHIsOfInsertValues | 0 | 12 | 12 | 0.00% | 0.00% | | asm-printer.EmittedInsts | 8926643 | 8926595 | -48 | 0.00% | 0.00% | | instcombine.NumCombined | 3846614 | 3846640 | 26 | 0.00% | 0.00% | | instcombine.NumConstProp | 24302 | 24293 | -9 | -0.04% | 0.04% | | instcombine.NumDeadInst | 1620140 | 1620112 | -28 | 0.00% | 0.00% | | instcount.NumBrInst | 898466 | 898464 | -2 | 0.00% | 0.00% | | instcount.NumCallInst | 1760819 | 1760875 | 56 | 0.00% | 0.00% | | instcount.NumExtractValueInst | 45659 | 45649 | -10 | -0.02% | 0.02% | | instcount.NumInsertValueInst | 4991 | 4981 | -10 | -0.20% | 0.20% | | instcount.NumIntToPtrInst | 27084 | 27087 | 3 | 0.01% | 0.01% | | instcount.NumPHIInst | 371435 | 371429 | -6 | 0.00% | 0.00% | | instcount.NumStoreInst | 906011 | 906019 | 8 | 0.00% | 0.00% | | instcount.TotalBlocks | 1105520 | 1105518 | -2 | 0.00% | 0.00% | | instcount.TotalInsts | 9795737 | 9795776 | 39 | 0.00% | 0.00% | | simplifycfg.NumInvokes | 2784 | 2786 | 2 | 0.07% | 0.07% | | simplifycfg.NumSimpl | 1001840 | 1001850 | 10 | 0.00% | 0.00% | | simplifycfg.NumSinkCommonInstrs | 15174 | 15170 | -4 | -0.03% | 0.03% | ``` Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D86306
-
Sam Parker authored
Explicitly check that there is a local def prior to the given instruction in getReachingLocalMIDef instead of just relying on a nullptr return from getInstFromId.
-
Rainer Orth authored
The dynamically linked ASan tests rely on `LD_LIBRARY_PATH` to find `libclang_rt.asan-*.so` at runtime. However, the Solaris runtime linker `ld.so.1` also supports more specific variables: `LD_LIBRARY_PATH_32` and `LD_LIBRARY_PATH_64` respectively. If those happen to be set, `LD_LIBRARY_PATH` is ignored. In such a case, all dynamically linked ASan tests `FAIL`. For i386 alone, this affects about 200 tests. The following patch fixes that by also setting `LD_LIBRARY_PATH_{32,64}` on Solaris. Tested on `amd64-pc-solaris2.11` both with only `LD_LIBRARY_PATH` set and with `LD_LIBRARY_PATH_{32,64}` set too. Differential Revision: https://reviews.llvm.org/D86333 -
Mateusz Mikuła authored
Differential Revision: https://reviews.llvm.org/D86405
-
Eduardo Caldas authored
-
Eduardo Caldas authored
-
Eduardo Caldas authored
-
Eduardo Caldas authored
-
Eduardo Caldas authored
We should see `NodeRole` information in the dump because that exposes how the accessors will behave. Functional changes in the dump: * Surround Leaf tokens with `'` * Append `Node` dumps with `NodeRole` information, except for unknown roles * Append marks to `Node` dumps, instead of prepending Non-functional changes: * `::dumpTokens(llvm::raw_ostream, ArrayRef<syntax::Token>, const SourceManager &SM)` always received as parameter a `syntax::Token *` pointing to `Leaf::token()`. Changed the function to `dumpLeaf(llvm::raw_ostream, syntax::Leaf *, const SourceManager&)` * `dumpTree` acted on a Node, rename to `dumpNode` Differential Revision: https://reviews.llvm.org/D85330
-
Raphael Isemann authored
psutil isn't reall a dependency of the test suite so this shouldn't be unconditionally be imported here. Instead just check for the process name by looking for the "a.out" string to get the bots green again.
-
Richard Smith authored
friend declarations and declarations found in inline namespaces within the target context.
-
Freddy Ye authored
Support -march=sapphirerapids for x86. Compare with Icelake Server, it includes 14 more new features. They are amxtile, amxint8, amxbf16, avx512bf16, avx512vp2intersect, cldemote, enqcmd, movdir64b, movdiri, ptwrite, serialize, shstk, tsxldtrk, waitpkg. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D86503
-
Eduardo Caldas authored
Differential Revision: https://reviews.llvm.org/D86470
-
Eduardo Caldas authored
Differential Revision: https://reviews.llvm.org/D86469
-
Eduardo Caldas authored
Differential Revision: https://reviews.llvm.org/D86467
-
Petr Hosek authored
For the Windows GNU platform, CMAKE_FIND_LIBRARY_PREFIXES is a list containing an empty string, which ended up in a regex capturing group, which is invalid in CMake's regex engine. With this change, we get the following: set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "") set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a" ".lib") get_system_libname(path/to/libz.dll.a zlib) message("${zlib}") outputs z, as expected. Patch By: haampie Differential Revision: https://reviews.llvm.org/D86434 -
Eric Christopher authored
as it's causing test failures. This reverts commit 589ce5f7.
-
Amy Huang authored
For some reason the ctor homing case was before the template specialization case, and could have returned false too early. I moved the code out into a separate function to avoid this. Also added a run line to the template specialization test. I guess all the -debug-info-kind=limited tests should still pass with =constructor, but it's probably unnecessary to test for all of those. Differential Revision: https://reviews.llvm.org/D86491
-
Alexandre Ganea authored
-
Tim Keith authored
If an error has occurred a symbol may have a DeclTypeSpec but no valid DynamicType. There is no need to compute the size of erroneous symbols. Also, we only need to process object entities and procedure entities. All other kinds of symbols can be skipped. This fixes another problem revealed by https://bugs.llvm.org/show_bug.cgi?id=47265 Differential Revision: https://reviews.llvm.org/D86484
-
Eric Christopher authored
warnings.
-
Richard Smith authored
In passing, also teach the driver to map /std:c++latest to -std=c++20 not -std=c++2a.
-
Mircea Trofin authored
If we use training algorithms that don't need partial rewards, we don't need to worry about an ir2native model. In that case, training logs won't contain a 'delta_size' feature either (since that's the partial reward). Differential Revision: https://reviews.llvm.org/D86481
-
Fangrui Song authored
On Windows, 'env' or 'printenv' may not exist. Also switch back to 'env' which is specified by POSIX.1-2017. 'printenv' is not standard (I picked it because 'printenv' exists on GnuWin32 but 'env' does not). Reviewed By: zequanwu Differential Revision: https://reviews.llvm.org/D86496
-
Muhammad Omair Javaid authored
There was typo left from changes in CalculateSVEOffset where we moved FPSR/FPCR offset calculation into WriteRegister and ReadRegister. Differential Revision: https://reviews.llvm.org/D79699
-
Elliott Hughes authored
The trailing 'L' was missing in the expectation. Differential Revision: https://reviews.llvm.org/D86321
-
shafik authored
[LLDB] Fix how ValueObjectVariable handles DW_AT_const_value when the DWARFExpression holds the data that represents a constant value In some cases when we have a DW_AT_const_value and the data can be found in the DWARFExpression then ValueObjectVariable does not handle it properly and we end up with an extracting data from value failed error. The test is a very stripped down assembly file since reproducing this relies on the results of compiling with -O1 which may not be stable over time. Differential Revision: https://reviews.llvm.org/D86311
-
Venkataramanan Kumar authored
With FMF ( "nsz" and " reassoc") fold X/Sqrt(X) to Sqrt(X). This is done after targets have the chance to produce a reciprocal sqrt estimate sequence because that expansion is probably more efficient than an expansion of a non-reciprocal sqrt. That is also why we deferred doing this transform in IR (D85709). Differential Revision: https://reviews.llvm.org/D86403
-
Sanjay Patel authored
This goes with the proposal in D86403.
-