- Nov 03, 2020
-
-
Tres Popp authored
-
Tres Popp authored
Because cstr operations allow more instruction reordering than asserts, we only lower cstr_broadcastable to std ops with cstr_require. This ensures that the more drastic lowering to asserts can happen specifically with the user's desire. Differential Revision: https://reviews.llvm.org/D89325
-
Michał Górny authored
Disable GetMemoryRegionInfo() in order to unbreak expression parsing. For some reason, the presence of non-stub function causes LLDB to fail to detect system libraries correctly. Through being unable to find mmap() and allocate memory, this leads to expression parser being broken. The issue is non-trivial and it is going to require more time debugging. On the other hand, the downsides of missing the function are minimal (2 failing tests), and the benefit of working expression parser justifies disabling it temporarily. Furthermore, the old FreeBSD plugin did not implement it anyway, so it allows us to switch to the new plugin without major regressions. The really curious part is that the respective code in the NetBSD plugin yields very similar results, yet does not seem to break the expression parser. Differential Revision: https://reviews.llvm.org/D90650
-
Michał Górny authored
Remove the NetBSD-specific override of GetSharedLibraryInfoAddress(), restoring the generic implementation from NativeProcessELF. Differential Revision: https://reviews.llvm.org/D90620
-
Michał Górny authored
Fix two bugs that caused attaching to a process in a pre-connected lldb-server to fail. These are: 1. Prematurely reporting status in NativeProcessFreeBSD::Attach(). The SetState() call defaulted to notify the process, and LLGS tried to send the stopped packet before the process instance was assigned to it. While at it, add an assert for that in LLGS. 2. Duplicate call to ReinitializeThreads() (via SetupTrace()) that overwrote the stopped status in threads. Now SetupTrace() is called directly by NativeProcessFreeBSD::Attach() (not the Factory) in place of ReinitializeThreads(). This fixes at least commands/process/attach/TestProcessAttach.py and python_api/hello_world/TestHelloWorld.py. Differential Revision: https://reviews.llvm.org/D90525
-
Michał Górny authored
Fix process matching by name to make 'process attach -n ...' work. The process finding code has an optimization that defers getting the process name and executable format after the numeric (PID, UID...) parameters are tested. However, the ProcessInstanceInfoMatch.Matches() method has been matching process name against the incomplete process information as well, and effectively no process ever matched. In order to fix this, create a copy of ProcessInstanceInfoMatch, set it to ignore process name and se this copy for the initial match. The same fix applies to FreeBSD and NetBSD host code. Differential Revision: https://reviews.llvm.org/D90454
-
Michał Górny authored
Implement NativeThreadFreeBSD::GetName(). This is based on the equivalent code in the legacy FreeBSD plugin, except it is modernized a bit to use llvm::Optional and std::vector for data storage. Differential Revision: https://reviews.llvm.org/D90298
-
Georgii Rymar authored
Currently it is impossible to create an instance of ELFObjectFile when the SHT_SYMTAB_SHNDX can't be read. We error out when fail to parse the SHT_SYMTAB_SHNDX section in the factory method. This change delays reading of the SHT_SYMTAB_SHNDX section entries, with it llvm-readobj is now able to work with such inputs. Differential revision: https://reviews.llvm.org/D89379
-
Petar Avramovic authored
Change match/apply functions into methods of new target specific combiner helper class. Use reference to MachineIRBuilder from helper instead of constructing new MachineIRBuilder each time new instruction needs to made. Allows correct tracking of newly created instructions. Differential Revision: https://reviews.llvm.org/D90623
-
Martin Storsjö authored
After that commit, the vptr sanitizer is enabled for mingw targets.
-
Max Kazantsev authored
-
Martin Storsjö authored
Differential Revision: https://reviews.llvm.org/D90572
-
Martin Storsjö authored
Differential Revision: https://reviews.llvm.org/D90571
-
Esme-Yi authored
Summary: This patch depends on D89846. We have the patterns to fold 2 RLWINMs in ppc-mi-peephole, while some RLWINM will be generated after RA, for example rGc4690b00. If the RLWINM generated after RA followed by another RLWINM, we expect to perform the optimization after RA, too. Reviewed By: shchenz, steven.zhang Differential Revision: https://reviews.llvm.org/D89855
-
Martin Storsjö authored
error_code returned from functions might not be of the generic category, but of the system category, which can have different error code values. Use default_error_condition() to remap errors to the generic category where possible, to allow comparing them to the expected values. Use the ErrorIs() helper instead of a direct comparison against an excpected value. Differential Revision: https://reviews.llvm.org/D90602
-
Martin Storsjö authored
So far, most actual uses of libc++ std::filesystem probably use the sendfile or fcopyfile implementations. Differential Revision: https://reviews.llvm.org/D90601
-
Martin Storsjö authored
This was missed in 5c39eebc. Differential Revision: https://reviews.llvm.org/D90600
-
Martin Storsjö authored
Differential Revision: https://reviews.llvm.org/D89947
-
Martin Storsjö authored
Prepend the root path on the already_absolute testcase, and construct a path ending with the preferred separator for the test reference for "foo/". Differential Revision: https://reviews.llvm.org/D89944
-
Martin Storsjö authored
Various definitions from libcxx need to be set in the same way as if building libcxx itself. Differential Revision: https://reviews.llvm.org/D90476
-
Stephan Bergmann authored
e00629f7 "[scan-build] Fix clang++ pathname" had removed the -MAJOR.MINOR suffix, but since presumably LLVM 7 the suffix is only -MAJOR, so ClangCXX (i.e., the CLANG_CXX environment variable passed to clang/tools/scan-build/libexec/ccc-analyzer) now contained a non-existing /path/to/clang-12++ (which apparently went largely unnoticed as clang/tools/scan-build/libexec/ccc-analyzer falls back to just 'clang++' if the executable denoted by CLANG_CXX does not exist). For the new clang/test/Analysis/scan-build/cxx-name.test to be effective, %scan-build must now take care to pass the clang executable's resolved pathname (i.e., ending in .../clang-MAJOR rather than just .../clang) to --use-analyzer. Differential Revision: https://reviews.llvm.org/D89481
-
Max Kazantsev authored
-
Craig Topper authored
These were being selected to ROL/ROR, but DAG combine should canonicalize fshl/fshr with same inputs to rotl/rotr which we also have patterns for.
-
Max Kazantsev authored
If we know that some check will not be executed on the last iteration, we can use this fact to eliminate its check. Differential Revision: https://reviews.llvm.org/D88210 Reviwed By: ebrevnov
-
Esme-Yi authored
Summary: We have the patterns to fold 2 RLWINMs in ppc-mi-peephole, while some RLWINM will be generated after RA, for example D88274. If the RLWINM generated after RA followed by another RLWINM, we expect to perform the optimization after RA, too. This is a NFC patch to move the folding patterns to PPCInstrInfo, and the follow-up works will be calling it in pre-emit-peephole and expand the patterns to handle more cases. Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D89846
-
Sameeran joshi authored
`OmpStructureChecker` has too much boilerplate code in source file. It was not easy to figure out the seperation of clauses inside 'OmpClause' and the ones which had a seperate node in parse-tree.h. This patch: 1. Removes the boilerplate by defining a few macros. 2. Makes seperation between constructs, directives and clauses(sub classes are seperated). 3. Macros could have been shared between OMP and OACC, template specilizations might have been costly hence used macros. Follows the same strategy used for `AccStructureChecker`. Next patch in series to simplify OmpStructureChecker would try to simplify boilerplates inside the functions and either create abstractions or use if something is available inside check-directive-structure.h Reviewed By: kiranchandramohan, clementval Differential Revision: https://reviews.llvm.org/D90324
-
Serge Pavlov authored
This test was removed in 5963e028 because it failed on cores where support of constrained intrinsics was limited. Now this test is enabled only on x86.
-
Atmn Patel authored
Presently, there a number of global variables in libomptarget (devices, RTLs, tables, mutexes, etc.) that are not placed within a struct. This patch places them into a struct ``PluginManager``. All of the functions that act on this data remain free. Differential Revision: https://reviews.llvm.org/D90519
-
Fangrui Song authored
-
Fangrui Song authored
-
Vitaly Buka authored
-
Jessica Clarke authored
Arm EHABI has a null LSDASection as it does its own thing, so we should continue to return null in that case rather than try and cast it.
-
Jessica Clarke authored
ADDI often has a frameindex in operand 1, but consumers of this interface, such as MachineSink, tend to call getReg() on the Destination and Source operands, leading to the following crash when building FreeBSD after this implementation was added in 8cf6778d: ``` clang: llvm/include/llvm/CodeGen/MachineOperand.h:359: llvm::Register llvm::MachineOperand::getReg() const: Assertion `isReg() && "This is not a register operand!"' failed. PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. Stack dump: #0 0x00007f4286f9b4d0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) llvm/lib/Support/Unix/Signals.inc:563:0 #1 0x00007f4286f9b587 PrintStackTraceSignalHandler(void*) llvm/lib/Support/Unix/Signals.inc:630:0 #2 0x00007f4286f9926b llvm::sys::RunSignalHandlers() llvm/lib/Support/Signals.cpp:71:0 #3 0x00007f4286f9ae52 SignalHandler(int) llvm/lib/Support/Unix/Signals.inc:405:0 #4 0x00007f428646ffd0 (/lib/x86_64-linux-gnu/libc.so.6+0x3efd0) #5 0x00007f428646ff47 raise /build/glibc-2ORdQG/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0 #6 0x00007f42864718b1 abort /build/glibc-2ORdQG/glibc-2.27/stdlib/abort.c:81:0 #7 0x00007f428646142a __assert_fail_base /build/glibc-2ORdQG/glibc-2.27/assert/assert.c:89:0 #8 0x00007f42864614a2 (/lib/x86_64-linux-gnu/libc.so.6+0x304a2) #9 0x00007f428d4078e2 llvm::MachineOperand::getReg() const llvm/include/llvm/CodeGen/MachineOperand.h:359:0 #10 0x00007f428d8260e7 attemptDebugCopyProp(llvm::MachineInstr&, llvm::MachineInstr&) llvm/lib/CodeGen/MachineSink.cpp:862:0 #11 0x00007f428d826442 performSink(llvm::MachineInstr&, llvm::MachineBasicBlock&, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, llvm::SmallVectorImpl<llvm::MachineInstr*>&) llvm/lib/CodeGen/MachineSink.cpp:918:0 #12 0x00007f428d826e27 (anonymous namespace)::MachineSinking::SinkInstruction(llvm::MachineInstr&, bool&, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) llvm/lib/CodeGen/MachineSink.cpp:1073:0 #13 0x00007f428d824a2c (anonymous namespace)::MachineSinking::ProcessBlock(llvm::MachineBasicBlock&) llvm/lib/CodeGen/MachineSink.cpp:410:0 #14 0x00007f428d824513 (anonymous namespace)::MachineSinking::runOnMachineFunction(llvm::MachineFunction&) llvm/lib/CodeGen/MachineSink.cpp:340:0 ``` Thus, check that operand 1 is also a register in the condition. Reviewed By: arichardson, luismarques Differential Revision: https://reviews.llvm.org/D89090
-
Jonas Devlieghere authored
Remove commented out code and print statements.
-
Jonas Devlieghere authored
Python doesn't support enums before PEP 435, but using a class with constants is how it's commonly emulated. It can be converted into a real Enum (in Python 3.4 and later) by extending the Enum class: class CrashLogParseMode(Enum): NORMAL = 0 THREAD = 1 IMAGES = 2 THREGS = 3 SYSTEM = 4 INSTRS = 5 -
Qiu Chaofan authored
Vector types, quadword integers and f128 currently cannot be handled in FastISel. We did not skip f128 type in lowering arguments, which causes a crash. This patch will fix it. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D90206
-
Qiu Chaofan authored
Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D90581
-
Jonas Devlieghere authored
Don't try to guess the location of LLDB.framework but use xcrun to ask the command line driver for the location of the lldb module.
-
Sam McCall authored
I think this was just an oversight. Differential Revision: https://reviews.llvm.org/D90541
-
Fangrui Song authored
-