- Aug 04, 2020
-
-
Endre Fülöp authored
Summary: In case a pointer iterator is incremented in a binary plus expression (operator+), where the iterator is on the RHS, IteratorModeling should now detect, and track the resulting value. Reviewers: Szelethus, baloghadamsoftware Reviewed By: baloghadamsoftware Subscribers: rnkovacs, whisperity, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, Charusso, steakhal, martong, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83190
-
Georgii Rymar authored
http://lab.llvm.org:8011/builders/clang-cmake-x86_64-avx2-linux/builds/15710/steps/build%20stage%201/logs/stdio fails with: /home/ssglocal/clang-cmake-x86_64-avx2-linux/clang-cmake-x86_64-avx2-linux/llvm/llvm/tools/llvm-readobj/ELFDumper.cpp: In function ‘llvm::Expected<const llvm::object::Elf_Mips_Options<ELFT>*> readMipsOptions(const uint8_t*, llvm::ArrayRef<unsigned char>&, bool&)’: /home/ssglocal/clang-cmake-x86_64-avx2-linux/clang-cmake-x86_64-avx2-linux/llvm/llvm/tools/llvm-readobj/ELFDumper.cpp:3373:19: error: the value of ‘ExpectedSize’ is not usable in a constant expression if (O->size < ExpectedSize) ^ /home/ssglocal/clang-cmake-x86_64-avx2-linux/clang-cmake-x86_64-avx2-linux/llvm/llvm/tools/llvm-readobj/ELFDumper.cpp:3369:10: note: ‘size_t ExpectedSize’ is not const size_t ExpectedSize = ^ /home/ssglocal/clang-cmake-x86_64-avx2-linux/clang-cmake-x86_64-avx2-linux/llvm/llvm/tools/llvm-readobj/ELFDumper.cpp:3373:12: error: parse error in template argument list if (O->size < ExpectedSize) ^ /home/ssglocal/clang-cmake-x86_64-avx2-linux/clang-cmake-x86_64-avx2-linux/llvm/llvm/tools/llvm-readobj/ELFDumper.cpp: In instantiation of ‘llvm::Expected<const llvm::object::Elf_Mips_Options<ELFT>*> readMipsOptions(const uint8_t*, llvm::ArrayRef<unsigned char>&, bool&) [with ELFT = llvm::object::ELFType<(llvm::support::endianness)0u, true>; uint8_t = unsigned char]’: /home/ssglocal/clang-cmake-x86_64-avx2-linux/clang-cmake-x86_64-avx2-linux/llvm/llvm/tools/llvm-readobj/ELFDumper.cpp:3400:30: required from ‘void {anonymous}::ELFDumper<ELFT>::printMipsOptions() [with ELFT = llvm::object::ELFType<(llvm::support::endianness)0u, true>]’ /home/ssglocal/clang-cmake-x86_64-avx2-linux/clang-cmake-x86_64-avx2-linux/llvm/llvm/tools/llvm-readobj/ELFDumper.cpp:2878:21: required from ‘void {anonymous}::ELFDumper<ELFT>::printArchSpecificInfo() [with ELFT = llvm::object::ELFType<(llvm::support::endianness)0u, true>]’ /home/ssglocal/clang-cmake-x86_64-avx2-linux/clang-cmake-x86_64-avx2-linux/llvm/llvm/tools/llvm-readobj/ELFDumper.cpp:6999:1: required from here /home/ssglocal/clang-cmake-x86_64-avx2-linux/clang-cmake-x86_64-avx2-linux/llvm/llvm/tools/llvm-readobj/ELFDumper.cpp:3373:5: error: ‘size’ is not a member template function Fix: add 2 `const` words to variables.
-
Georgii Rymar authored
`printMipsOptions()` and the test related has the following issues currently: 1) It does not check the value of Elf_Mips_Options<ELFT>::size field. 2) For ODK_REGINFO options it is possible to read past the end of buffer, because there is no check against the `sizeof(Elf_Mips_RegInfo<ELFT>)`. 3) The error about the broken size is just printed to the standard output. 4) The binary input is used for the test. 5) There is no testing for multiple options in the .MIPS.options section, though the code supports it. 6) Only llvm-readobj is tested, but not llvm-readelf. 7) "Unsupported MIPS options tag" message does not reveal the tag ID/name. This patch fixes all of these points. Differential revision: https://reviews.llvm.org/D84854
-
Xing GUO authored
DWARFYAML supports generating the .debug_loclists section. We can use it to simplify tests. Reviewed By: jhenderson, grimar Differential Revision: https://reviews.llvm.org/D85179
-
Nicolas Vasilache authored
Added a "clone" of the 1D vector's test_transfer_read and added a second dimensionality. The test is not as generic as I would like it to be, because more generic versions appear to break the compiler or the runtime at this stage. As bug are fixed, I will be happy to add another more complete test. Differential Revision: https://reviews.llvm.org/D83096
-
Nathan James authored
See bug https://bugs.llvm.org/show_bug.cgi\?id\=46976
-
Georgii Rymar authored
It turns out that findSectionByName can return const Elf_Shdr * instead of Expected<>, because its code never returns an error currently (it reports warnings instead). Differential revision: https://reviews.llvm.org/D85135
-
Juneyoung Lee authored
-
Qiu Chaofan authored
For FP_TO_INT and INT_TO_FP lowering, we have direct-move and non-direct-move methods. But they share some conversion logic, so we can reduce redundant code by introducing new methods. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D81818
-
Juneyoung Lee authored
Compared to the optimized code with branch conditions never frozen, limiting the type of freeze's operand causes generation of suboptimal code in some cases. I would like to suggest removing the constraint, as this patch does. If the number of freeze instructions becomes significant, this can be revisited. Differential Revision: https://reviews.llvm.org/D84949
-
Jakub Lichman authored
Lowering of newly defined Conv ops in TC syntax to standard dialect is not supported and therefore this commit adds support for it. Differential Revision: https://reviews.llvm.org/D84840
-
Nathan Ridge authored
Fixes https://github.com/clangd/clangd/issues/476 Differential Revision: https://reviews.llvm.org/D85108
-
Xing GUO authored
-
Fangrui Song authored
D84723 caused multiple definition issues (related to comdat) on Windows: http://lab.llvm.org:8011/builders/sanitizer-windows/builds/67465
-
Wang, Pengfei authored
Test function mask_cmp_128 failed during ISEL LLVM ERROR: Cannot select: t37: v8i1 = X86ISD::KSHIFTL t48, TargetConstant:i8<4> due to v8i1 only available under AVX512DQ. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D84922
-
Chen Zheng authored
Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D84735
-
Carl Ritson authored
When scavenging consider the sub-register of the source operand to determine the bank of a candidate register (not just sub0). Without this it is possible to introduce an infinite loop, e.g. $sgpr15_sgpr16_sgpr17 can be assigned for a conflict between $sgpr0 and SGPR_96:sub1. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D84910
-
Fangrui Song authored
See https://lists.llvm.org/pipermail/llvm-dev/2020-July/143373.html "[llvm-dev] Multiple documents in one test file" for some discussions. This patch has explored several alternatives. The current semantics are similar to what @dblaikie proposed. `split-file filename output` splits the input file into multiple parts separated by regex `^(.|//)--- filename` and write each part to the file `output/filename` (`filename` can include path separators). Use case A (organizing input of different formats (e.g. linker script+assembly) in one file). ``` # RUN: split-file %s %t # RUN: llvm-mc %t/asm -o %t.o # RUN: ld.lld -T %t/lds %t.o -o %t This is sometimes better than the %S/Inputs/ approach because the user can see the auxiliary files immediately and don't have to open another file. # asm ... # lds ... ``` Use case B (for utilities which don't have built-in input splitting feature): ``` // RUN: split-file %s %t // RUN: llc < %t/1.ll | FileCheck %s --check-prefix=CASE1 // RUN: l...
-
Fangrui Song authored
D68041 placed `__profc_`, `__profd_` and (if exists) `__profvp_` in different comdat groups. There are some issues: * Cost: one or two additional section headers (`.group` section(s)): 64 or 128 bytes on ELF64. * `__profc_`, `__profd_` and (if exists) `__profvp_` should be retained or discarded. Placing them into separate comdat groups is conceptually inferior. * If the prevailing group does not include `__profvp_` (value profiling not used) but a non-prevailing group from another translation unit has `__profvp_` (the function is inlined into another and triggers value profiling), there will be a stray `__profvp_` if --gc-sections is not enabled. This has been fixed by 3d6f5301. Actually, we can reuse an existing symbol (we choose `__profd_`) as the group signature to avoid a string in the string table (the sole reason that D68041 could improve code size is that `__profv_` was an otherwise unused symbol which wasted string table space). This saves one or two section headers. For a -DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_INSTRUMENTED=IR build, `ninja clang lld`, the patch has saved 10.5MiB (2.2%) for the total .o size. Reviewed By: davidxl Differential Revision: https://reviews.llvm.org/D84723
-
Max Kazantsev authored
[SimpleLoopUnswitch][NFC] Add option to always drop make.implicit metadata in non-trivial unswitching and save compile time We might want this if we find out that using of MustExecute analysis is too expensive. By default we do the analysis because its complexity does not exceed the complexity of whole loop copying in unswitching. Follow-up for D84925. Differential Revision: https://reviews.llvm.org/D85001 Reviewed By: asbirlea
-
Jonas Devlieghere authored
Sometimes the decorator is used on a common function rather than the test method, which can return a value. This fails with decorators that use skipTestIfFn under the hood.
-
Jordan Rupprecht authored
This reverts commit adb5c23f. It surprisingly fails on a windows build bot: http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja/builds/18009 Will reland after some investigation and/or after adding some extra logging to help debug the issue.
-
Chen Zheng authored
Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D85130
-
peter klausler authored
Differential Revision: https://reviews.llvm.org/D85166
-
Shinji Okumura authored
-
David Blaikie authored
-
Petr Hosek authored
Clang and GCC have a feature (-MD flag) to create a dependency file in a format that build systems such as Make or Ninja can read, which specifies all the additional inputs such .h files. This change introduces the same functionality to lld bringing it to feature parity with ld and gold which gained this feature recently. See https://sourceware.org/bugzilla/show_bug.cgi?id=22843 for more details and discussion. The implementation corresponds to -MD -MP compiler flag where the generated dependency file also includes phony targets which works around the errors where the dependency is removed. This matches the format used by ld and gold. Fixes PR42806 Differential Revision: https://reviews.llvm.org/D82437
-
Daniel Sanders authored
-
peter klausler authored
External input was detecting "end of file" conditions in BeginExternal...Input() and BeginUnformattedInput() routines before EnableHandlers() could have been called. Defer the "start next record" processing to the input data item handlers (and EndIoStatement() for when there are no data items). Differential Revision: https://reviews.llvm.org/D85161
-
peter klausler authored
Extend the raw file wrapper to get accessibility, positioning, and size information. This is needed for INQUIRE (to follow). Differential Revision: https://reviews.llvm.org/D85160
-
Christopher Tetreault authored
Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D85156
-
Jordan Rupprecht authored
If the test suite is misconfigured when it's run (a bad regexp, wrong test directory, etc.), the test suite may not discover any tests. When this happens, the test runner exits happily because no tests failed: ``` Ran 0 tests in 0.000s RESULT: PASSED (0 passes, 0 failures, 0 errors, 0 skipped, 0 expected failures, 0 unexpected successes) ``` Change this to return an error so the misconfiguration can be more easily detected. Verified that `lldb-dotest -p TestDoesNotExist.py` successfully fails. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D85169
-
Nathan James authored
-
peter klausler authored
-
peter klausler authored
Fixes problems in FCVS test fm110.f. Add more comments, too. Differential Revision: https://reviews.llvm.org/D85163
-
hgreving authored
Adds the function createMCInst() to MCContext that creates a MCInst using a typed bump alloctor. MCInst contains a SmallVector<MCOperand, 8>. The SmallVector is POD only for <= 8 operands. The default untyped bump pointer allocator of MCContext does not delete the MCInst, so if the SmallVector grows, it's a leak. This fixes https://bugs.llvm.org/show_bug.cgi?id=46900.
-
Kazushi (Jam) Marukawa authored
In order to follow NEC Aurora SX VE ABI correctly, change to sign/zero extend integer arguments and return values smaller than 64 bits in clang. Also update regression test. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D85071
-
Christopher Tetreault authored
Differential Revision: https://reviews.llvm.org/D85151
-
Christopher Tetreault authored
Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D85152
-
Julian Lettner authored
These UBSan tests assert the absence of runtime errors via `count 0`, which means "expect no output". This fails the test unnecessarily in some environments (e.g., iOS simulator in our case). Alter the test to be a bit more specific and "expect no error" instead of "expect no output". rdar://65503408 Differential Revision: https://reviews.llvm.org/D85155
-