- Mar 27, 2020
-
-
Jay Foad authored
-
Fangrui Song authored
-
Kirstóf Umann authored
-
- Mar 26, 2020
-
-
Justin Hibbits authored
Summary: The linker is free to relax this (relocation R_PPC_GOT_TPREL16) against R_PPC_TLS, if it sees fit (initial exec to local exec). If r0 is used, this can generate execution-invalid code (converts to 'addi %rX, %r0, FOO, which translates in PPC-lingo to li %rX, FOO). Forbid this instead. This fixes static binaries using locales on FreeBSD/powerpc (tested on FreeBSD/powerpcspe). Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D76662
-
Anton Kolesov authored
Those fields inside of the global variable can be local variables because they are used in only inside of one function: request_launch for launch_info and request_attach for attach_info. To avoid confusion an already existing local variable attach_info of request_attach has been renamed to better reflect its purpose. Differential Revision: https://reviews.llvm.org/D76593
-
Simon Pilgrim authored
As discussed on PR31443, we should be trying to use PACKUS for binary truncation patterns to reduce the number of shuffles. The plan is to support AVX2+ targets once we've worked around PR45315 - we fail to peek through a VBROADCAST_LOAD mask to recognise zero upper bits in a PACKUS pattern. We should also be able to add support for v8i16 and possibly 256/512-bit vectors as well.
-
Fangrui Song authored
[PPCInstPrinter] Change printBranchOperand(calltarget) to print the target address in hexadecimal form ``` // llvm-objdump -d output (before) 0: bl .-4 4: bl .+0 8: bl .+4 // llvm-objdump -d output (after) ; GNU objdump -d 0: bl 0xfffffffc / bl 0xfffffffffffffffc 4: bl 0x4 8: bl 0xc ``` Many Operand's are not annotated as OPERAND_PCREL. They are not affected (e.g. `b .+67108860`). I plan to fix them in future patches. Modified test/tools/llvm-objdump/ELF/PowerPC/branch-offset.s to test address space wraparound for powerpc32 and powerpc64. Reviewed By: sfertile, jhenderson Differential Revision: https://reviews.llvm.org/D76591
-
James Henderson authored
The error previously talked about a "section header" but was actually referring to a program header. Reviewed by: grimar, MaskRay Differential Revision: https://reviews.llvm.org/D76846
-
Fangrui Song authored
``` // llvm-objdump -d output (before) 400000: e8 0b 00 00 00 callq 11 400005: e8 0b 00 00 00 callq 11 // llvm-objdump -d output (after) 400000: e8 0b 00 00 00 callq 0x400010 400005: e8 0b 00 00 00 callq 0x400015 // GNU objdump -d. The lack of 0x is not ideal because the result cannot be re-assembled 400000: e8 0b 00 00 00 callq 400010 400005: e8 0b 00 00 00 callq 400015 ``` In llvm-objdump, we pass the address of the next MCInst. Ideally we should just thread the address of the current address, unfortunately we cannot call X86MCCodeEmitter::encodeInstruction (X86MCCodeEmitter requires MCInstrInfo and MCContext) to get the length of the MCInst. MCInstPrinter::printInst has other callers (e.g llvm-mc -filetype=asm, llvm-mca) which set Address to 0. They leave MCInstPrinter::PrintBranchImmAsAddress as false and this change is a no-op for them. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D76580
-
Haojian Wu authored
This reverts commit 0788acbc. This reverts commit c2d7a1f7: Revert "[clangd] Add test for FindTarget+RecoveryExpr (which already works). NFC" It causes a crash on invalid code: class X { decltype(unresolved()) foo; }; constexpr int s = sizeof(X);
-
Simon Cook authored
Summary: Some compressed instructions match against negative values; store immediates as a signed value such that these patterns will now match the intended instructions. Reviewers: asb, lenary, PaoloS Reviewed By: asb Subscribers: rbar, johnrusso, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, evandro, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76767
-
Fangrui Song authored
Follow-up of D72172 and D72180 This patch passes `uint64_t Address` to print methods of PC-relative operands so that subsequent target specific patches can change `*InstPrinter::print{Operand,PCRelImm,...}` to customize the output. Add MCInstPrinter::PrintBranchImmAsAddress which is set to true by llvm-objdump. ``` // Current llvm-objdump -d output aarch64: 20000: bl #0 ppc: 20000: bl .+4 x86: 20000: callq 0 // Ideal output aarch64: 20000: bl 0x20000 ppc: 20000: bl 0x20004 x86: 20000: callq 0x20005 // GNU objdump -d. The lack of 0x is not ideal because the result cannot be re-assembled aarch64: 20000: bl 20000 ppc: 20000: bl 0x20004 x86: 20000: callq 20005 ``` In `lib/Target/X86/X86GenAsmWriter1.inc` (generated by `llvm-tblgen -gen-asm-writer`): ``` case 12: // CALL64pcrel32, CALLpcrel16, CALLpcrel32, EH_SjLj_Setup, JCXZ, JECXZ, J... - printPCRelImm(MI, 0, O); + printPCRelImm(MI, Address, 0, O); return; ``` Some targets have 2 `printOperand` overloads, one without `Address` and one with `Address`. They should annotate derived `Operand` properly with `let OperandType = "OPERAND_PCREL"`. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D76574 -
LLVM GN Syncbot authored
-
Kristóf Umann authored
Reland "[analyzer][NFC] Tie CheckerRegistry to CheckerManager, allow CheckerManager to be constructed for non-analysis purposes" Originally commited in rG57b8a407, but it broke the modules bot. This is solved by putting the contructors of the CheckerManager class to the Frontend library. Differential Revision: https://reviews.llvm.org/D75360
-
Dominik Montada authored
Summary: The existing helper function can only create a libcall to functions available in RTLIB. Add a helper function that can create a libcall to a given function name using the provided calling convention. Reviewers: aditya_nandakumar, t.p.northover, rovka, arsenm, dsanders Reviewed By: arsenm Subscribers: wdng, hiraditya, volkan, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76845
-
Louis Dionne authored
I keep having to remove them from my diffs!
-
John Brawn authored
-
Qiu Chaofan authored
In some scalarize/split result methods (unary, binary, ...), flags in SDNode were not passed down, which may lead to unexpected results in unsafe float-point optimization. This patch fixes them. (maybe not complete) Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D76832
-
Pavel Labath authored
In breakpad, only x86 (and mips) registers have a leading '$' in their names. Arm architectures use plain register names. Previously, lldb was assuming all registers have a '$'. Fix the code to match the (unfortunately, inconsistent) reality.
-
Ilya Leoshkevich authored
Commit 5f5fb56c ("[compiler-rt] Intercept the uname() function") broke clang-cmake-thumbv7-full-sh build: http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-full-sh/builds/4296 This also affects i386. The reason is that intercepted uname() is called by GetKernelAreaSize() during ASAN initialization on 32-bit platforms, but the respective interceptor is not initialized yet at this point, leading to null pointer dereference. Introduce internal_uname() wrapper around uname syscall, and use it in GetKernelAreaSize() and in FixedCVE_2016_2143(). Author: Ilya Leoshkevich Reviewed By: Evgenii Stepanov Differential Revision: https://reviews.llvm.org/D76776
-
Ilya Leoshkevich authored
Disable symbolization of results, since llvm-symbolizer cannot start due to restricted readlink(), causing the test to die with SIGPIPE. Author: Ilya Leoshkevich Reviewed By: Evgenii Stepanov Differential Revision: https://reviews.llvm.org/D76576
-
Sam Parker authored
Many IndVarSiimplify tests target an x86 triple, so move them into a target specific folder.
-
Aaron Ballman authored
There has been some ongoing confusion regarding when to use `llvm_unreachable` which this patch attempts to address. Specifically, the confusion has been around whether `llvm_unreachable` is intended to mark only unreachable code paths that the compiler cannot determine itself or to mark a code path which is unconditionally a bug to reach. Based on email and IRC discussions, it sounds like "unconditional bug to reach" is the consensus.
-
Eric Fiselier authored
This reverts commit a32b94c6. The buildbot startup scripts need to run as root. The buildbot worker should have already been running as a different account. More investigation needed.
-
Tatyana Krasnukha authored
-
Tatyana Krasnukha authored
-
Simon Pilgrim authored
[X86][SSE] getFauxShuffleMask - peek through TRUNCATE/AEXT/ZEXT for INSERT_VECTOR_ELT(EXTRACT_VECTOR_ELT()) As long we extract from a source vector with smaller elements and we zero-extend the element in the final shuffle mask then we can safely peek through truncations and any/zero-extensions to find the source extraction.
-
Louis Dionne authored
Forcing -Werror and other warnings means that the test suite isn't actually testing what most people are seeing in their code -- it seems better and less arbitrary to compile these tests as close as possible to the compiler default instead. Removing -Werror also means that we get to differentiate between diagnostics that are errors and those that are warnings, which makes the test suite more precise. Differential Revision: https://reviews.llvm.org/D76311
-
Sam McCall authored
Ultimately it relies on the output of __PRETTY_FUNCTION__ which isn't reliable.
-
Sam McCall authored
This reverts commit 4bd1d558. Cure is worse than the disease: "> >" is still expected in most configs. Working on fixing the fuchsia builder.
-
Jonas Paulsson authored
This function did a check which was broken to see if an opcode requires op0 and op1 to be tied. By chance this is NFC. Review: Ulrich Weigand
-
Georgii Rymar authored
This is a NFC splitted from D75342. Previously obj2yaml never dumped a normal SHT_NULL section (i.e. when it is just zeroed) or non-allocatable SHT_STRTAB/SHT_SYMTAB/SHT_DYNSYM sections. This patch does not change the output, but it changes the logic so that we now dump these sections, and them remove them later. It allows us to create and work with our internal representation of sections, i.e. to work with the vector of Chunks, what looks cleaner. It is used by D75342 and also should help us to support dumping a content that does not belong to a section (i.e. to dump some data as `Fill` chunks). Differential revision: https://reviews.llvm.org/D76684
-
Emre Kultursay authored
Summary: When using IPv6 host:port pairs, typically the host is put inside brackets, such as [2601:1234:...:0213]:5555, and the UriParser can handle this format. However, the Android infrastructure in LLDB assumes an additional brackets around the host:port pair, such that the entire host:port string can be treated as the host (which is used as an Android Serial Number), and UriParser cannot handle multiple brackets. Parsing inputs with such extra backets requires searching the closing bracket from the right. Test: BracketedHostnameWithPortIPv6 covers the case mentioned above Reviewers: #lldb, labath Reviewed By: labath Subscribers: kwk, shafik, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D76736
-
gbreynoo authored
When Clang crashes a useful message is output: "PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script." A similar message is now output for all tools. Differential Revision: https://reviews.llvm.org/D74324
-
Karl-Johan Karlsson authored
Fixed gcc -Wpedantic warning about extra ';'
-
Shivam Mittal authored
Reviewers: jingham, aprantl, labath, jankratochvil Reviewed By: labath, jankratochvil Subscribers: labath, jankratochvil, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D76569
-
Haojian Wu authored
Summary: The previous behavior was aggressive, #include "abc/f^/abc.h" foo/ -> candidate "f/abc.h" is replaced with "foo/", this patch will preserve the "abc.h". Reviewers: sammccall Subscribers: jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D76770 -
Kang Zhang authored
Summary: Below InstAlias have been redefined, this patch is to remove the repeated definition. mtdec/mfdec mtsdr1/mfsdr1 mtsrr0/mfsrr0 mtsrr1/mfsrr1 mtasr Reviewed By: nemanjai, steven.zhang Differential Revision: https://reviews.llvm.org/D75821
-
James Henderson authored
The unique warning handler was previously a property of the dump style, but it is commonly used in the dumper too. Since the two ELF output styles have no impact on the way warnings are printed, this patch moves the handler and related functions into the dumper class, instead of the dump style class. Reviewed by: MaskRay, grimar Differential Revision: https://reviews.llvm.org/D76777
-
Cullen Rhodes authored
Summary: This patch adds initial support for the following intrinsics: * llvm.aarch64.sve.st2 * llvm.aarch64.sve.st3 * llvm.aarch64.sve.st4 For storing two, three and four vectors worth of data. Basic codegen for reg+immediate forms are implemented. Reg+reg addressing modes will be addressed in a later patch. These intrinsics are intended for use in the Arm C Language Extension (ACLE). Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D75947
-