- Feb 26, 2020
-
-
James Henderson authored
This moves it above the response file description, which should be at the end.
-
James Henderson authored
The examples for different options were inconsistently indented in the HTML display. As they are tied to the options, this change normalises to indent them the same as the option description body.
-
James Henderson authored
"--functions none" and "--functions=none" are not the same. One is the option "--functions" with its default value of "linkage", followed by an input address of "none", and the other is "--functions" with the value "none". This patch fixes the doc to match the actual behaviour by adding an extra '=' sign in the allowed values description.
-
Jay Foad authored
-
serge-sans-paille authored
Typo introduced in e058667a
-
serge-sans-paille authored
Add a configure feature test to filter out tests that explicitly depend on platform linker. Differential Revision: https://reviews.llvm.org/D74704
-
Pavel Labath authored
Summary: This packet is necessary to make lldb work with the remote-gdb stub in user mode qemu when running position-independent binaries. It reports the relative position (load bias) of the loaded executable wrt. the addresses in the file itself. Lldb needs to know this information in order to correctly set the load address of the executable. Normally, lldb would be able to find this out on its own by following the breadcrumbs in the process auxiliary vector, but we can't do this here because qemu does not support the qXfer:auxv:read packet. This patch does not implement full scope of the qOffsets packet (it only supports packets with identical code, data and bss offsets), because it is not fully clear how should the different offsets be handled and I am not aware of a producer which would make use of this feature (qemu will always <https://github.com/qemu/qemu/blob/master/linux-user/elfload.c#L2436> return the same value for code and data offsets). In fact, even gdb ignores the offset for the bss sections, and uses the "data" offset instead. So, until the we need more of this packet, I think it's best to stick to the simplest solution possible. This patch simply rejects replies with non-uniform offsets. Reviewers: clayborg, jasonmolenda Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74598
-
Haojian Wu authored
-
Haojian Wu authored
Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74834
-
Kadir Cetinkaya authored
Summary: Fixes https://github.com/clangd/clangd/issues/279. We were removing the color options but not the preceeding -Xclang which causes errors since the -Xclang would now apply to the next option in the list of options. Now, when removing a color option, we check if there was a preceeding -Xclang and remove it as well. Patch By @DaanDeMeyer ! Reviewers: sammccall, kadircet Reviewed By: sammccall Subscribers: ilya-biryukov, usaxena95 Differential Revision: https://reviews.llvm.org/D75019
-
serge-sans-paille authored
Local testing on OSX no longer exhibit the linking error mentioned in https://reviews.llvm.org/D71959#1860286
-
Michael Liao authored
-
Juneyoung Lee authored
-
Jim Lin authored
-
Greg Clayton authored
Summary: This patch creates the llvm-gsymutil binary that can convert object files to GSYM using the --convert <path> option. It can also dump and lookup addresses within GSYM files that have been saved to disk. To dump a file: llvm-gsymutil /path/to/a.gsym To perform address lookups, like with atos, on GSYM files: llvm-gsymutil --address 0x1000 --address 0x1100 /path/to/a.gsym To convert a mach-o or ELF file, including any DWARF debug info contained within the object files: llvm-gsymutil --convert /path/to/a.out --out-file /path/to/a.out.gsym Conversion highlights: - convert DWARF debug info in mach-o or ELF files to GSYM - convert symbols in symbol table to GSYM and don't convert symbols that overlap with DWARF debug info - extract UUID from object files - extract .text (read + execute) section address ranges and filter out any DWARF or symbols that don't fall in those ranges. - if .text sections are extracted, and if the last gsym::FunctionInfo object has no size, cap the size to the end of the section the function was contained in Dumping GSYM files will dump all sections of the GSYM file in textual format. Reviewers: labath, aadsm, serhiy.redko, jankratochvil, xiaobai, wallace, aprantl, JDevlieghere, jdoerfert Subscribers: mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74883
-
Juneyoung Lee authored
Summary: Loop unswitch hoists branches on loop-invariant conditions. However, if this condition is poison/undef and the branch wasn't originally reachable, loop unswitch introduces UB (since the optimized code will branch on poison/undef and the original one didn't)). We fix this problem by freezing the condition to ensure we don't introduce UB. We will now transform the following: while (...) { if (C) { A } else { B } } Into: C' = freeze(C) if (C') { while (...) { A } } else { while (...) { B } } This patch fixes the root cause of the following bug reports (which use the old loop unswitch, but can be reproduced with minor changes in the code and -enable-nontrivial-unswitch): - https://llvm.org/bugs/show_bug.cgi?id=27506 - https://llvm.org/bugs/show_bug.cgi?id=31652 Reviewers: reames, majnemer, chenli, sanjoy, hfinkel Reviewed By: reames Subscribers: hiraditya, jvesely, nhaehnle, filcab, regehr, trentxintong, nlopes, llvm-commits, mzolotukhin Tags: #llvm Differential Revision: https://reviews.llvm.org/D29015 -
Kang Zhang authored
Summary: The patch D62993 : `[PowerPC] Emit scalar min/max instructions with unsafe fp math` has modified the functionality when `Subtarget.hasP9Vector() && (!HasNoInfs || !HasNoNaNs)`, this modification is not expected. Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D74701
-
Fangrui Song authored
Only MCAsmStreamer (assembly output) needs to keep names of temporary labels created by MCContext::createTempSymbol(). This change made the rL236642 optimization available for cc2as and probably some other users. This eliminates a behavior difference between llvm-mc -filetype=obj and cc1as, which caused https://reviews.llvm.org/D74006#1890487 Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D75097
-
Fangrui Song authored
Fixed an issue exposed by D74006. In clang cc1as, MCContext::UseNamesOnTempLabels is true. When parsing a .fnstart directive, FnStart gets redefined to a temporary symbol of a different name (.Ltmp0, .Ltmp1, ...). MCContext::getELFSection() called by SwitchToEHSection() will create a different .ARM.exidx each time. llvm-mc uses `Ctx.setUseNamesOnTempLabels(false);` and FnStart is unnamed. MCContext::getELFSection() called by SwitchToEHSection() will reuse the same .ARM.exidx . Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D75095
-
Fangrui Song authored
-
Nathan James authored
[docs] dump-ast-matchers removes const from Matcher args and handles template functions slightly better Reviewers: aaron.ballman, gribozavr2, joerg Reviewed By: aaron.ballman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75113
-
Reid Kleckner authored
Instead, use `using namespace lld(::coff)`, and fully qualify the names of free functions where they are defined in cpp files. This effectively reverts d79c3be6 to follow the new style guide added in 236fcbc2. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D74882
-
Max Moroz authored
-
Craig Topper authored
This node reads the rounding control which means it needs to be ordered properly with operations that change the rounding control. So it needs to be chained to maintain order. This patch adds a chain input and output to the node and connects it to the chain in SelectionDAGBuilder. I've update all in-tree targets to connect their chain through their lowering code. Differential Revision: https://reviews.llvm.org/D75132
-
zoecarver authored
std::shared_ptr::allocate_shared isn't in the standard. This commit removes it from libc++. It updates std::allocate_shared to use __create_with_cntrl_block. Differential Revision: https://reviews.llvm.org/D66178
-
Lang Hames authored
It was being used inconsistently. Uses have been replaced with direct checks on the symbol state.
-
Adrian Prantl authored
-
Nico Weber authored
This reverts commit 9c54f615. Breaks two tests on Windows, see e.g. http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/14505/steps/stage%201%20check/logs/stdio
-
Quentin Colombet authored
Unlike what I claimed in my previous commit. The caching is actually not NFC on PHIs. When we put a big enough max depth, we end up simulating loops. The cache is effectively cutting the simulation short and we get less information as a result. E.g., ``` v0 = G_CONSTANT i8 0xC0 jump v1 = G_PHI i8 v0, v2 v2 = G_LSHR i8 v1, 1 ``` Let say we want the known bits of v1. - With cache: Set v1 cache to we know nothing v1 is v0 & v2 v0 gives us 0xC0 v2 gives us known bits of v1 >> 1 v1 is in the cache => v1 is 0, thus v2 is 0x80 Finally v1 is v0 & v2 => 0x80 - Without cache and enough depth to do two iteration of the loop: v1 is v0 & v2 v0 gives us 0xC0 v2 gives us known bits of v1 >> 1 v1 is v0 & v2 v0 is 0xC0 v2 is v1 >> 1 Reach the max depth for v1... unwinding v1 is know nothing v2 is 0x80 v0 is 0xC0 v1 is 0x80 v2 is 0xC0 v0 is 0xC0 v1 is 0xC0 Thus now v1 is 0xC0 instead of 0x80. I've added a unittest demonstrating that. NFC
-
aartbik authored
Summary: This prepares using the operation in model builder runner. Reviewers: nicolasvasilache, andydavis1 Reviewed By: nicolasvasilache Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75147
-
Louis Dionne authored
The same test was being repeated over and over again. That's what functions are for.
-
River Riddle authored
Summary: bfloat16 is stored internally as a double, so we can't direct use Type::getIntOrFloatBitWidth. Differential Revision: https://reviews.llvm.org/D75133
-
Jason Molenda authored
Updated the patch to only fetch $pc on a Return Address-using target only if we're in a trap frame *and* if there is a saved location for $pc in the trap frame's unwind rules. If not, we fall back to fetching the Return Address register (eg $lr). Original commit msg: Unwind past an interrupt handler correctly on arm or at pc==0 Fix RegisterContextLLDB::InitializeNonZerothFrame so that it will fetch a FullUnwindPlan instead of falling back to the architectural default unwind plan -- GetFullUnwindPlan knows how to spot a jmp 0x0 that results in a fault, which may be the case when we see a trap handler on the stack. Fix RegisterContextLLDB::SavedLocationForRegister so that when the pc value is requested from a trap handler frame, where we have a complete register context available to us, don't provide the Return Address register (lr) instead of the pc. We have an actual pc value here, and it's pointing to the instruction that faulted. Differential revision: https://reviews.llvm.org/D75007 <rdar://problem/59416588> -
Louis Dionne authored
It turns out that <semaphore.h> is not well-behaved, as it transitively includes <sys/param.h>, and that one defines several non-reserved macros that clash with some downstream projects in modular builds. For the time being, using <sys/semaphore.h> instead gives us the declarations we need without the macros. rdar://59744472
-
Vedant Kumar authored
This reverts commit eee22ec3. This is not the correct fix, the root cause seems to be a bug in the stage1 host clang compiler. See https://reviews.llvm.org/D75091 for more discussion.
-
Roman Lebedev authored
Summary: Right now we annotate C++'s `operator new` with `noalias` attribute, which very much is healthy for optimizations. However as per [[ http://eel.is/c++draft/basic.stc.dynamic.allocation | `[basic.stc.dynamic.allocation]` ]], there are more promises on global `operator new`, namely: * non-`std::nothrow_t` `operator new` *never* returns `nullptr` * If `std::align_val_t align` parameter is taken, the pointer will also be `align`-aligned * ~~global `operator new`-returned pointer is `__STDCPP_DEFAULT_NEW_ALIGNMENT__`-aligned ~~ It's more caveated than that. Supplying this information may not cause immediate landslide effects on any specific benchmarks, but it for sure will be healthy for optimizer in the sense that the IR will better reflect the guarantees provided in the source code. The caveat is `-fno-assume-sane-operator-new`, which currently prevents emitting `noalias` attribute, and is automatically passed by Sanitizers ([[ https://bugs.llvm.org/show_bug.cgi?id=16386 | PR16386 ]]) - should it also cover these attributes? The problem is that the flag is back-end-specific, as seen in `test/Modules/explicit-build-flags.cpp`. But while it is okay to add `noalias` metadata in backend, we really should be adding at least the alignment metadata to the AST, since that allows us to perform sema checks on it. Reviewers: erichkeane, rjmccall, jdoerfert, eugenis, rsmith Reviewed By: rsmith Subscribers: xbolva00, jrtc27, atanasyan, nlopes, cfe-commits Tags: #llvm, #clang Differential Revision: https://reviews.llvm.org/D73380
-
Roman Lebedev authored
Summary: There was even a TODO for this. The main motivation is to make use of call-site based `__attribute__((alloc_align(param_idx)))` validation (D72996). Reviewers: rsmith, erichkeane, aaron.ballman, jdoerfert Reviewed By: rsmith Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D73020
-
Cyndy Ishida authored
* Conforms to clang tidy
-
Johannes Doerfert authored
If we deduplicate OpenMP runtime calls we have multiple `ident_t*` that represent information like source location. So far, we simply kept the one used by the replacement call. However, as exposed by PR44893, that can cause problems if we have stack allocated `ident_t` objects. While we need to revisit the use of these as well, it is clear that we eventually want to merge source location information in some way. With this patch we add the infrastructure to do so but without doing the actual merge. Instead we pick a global `ident_t` from the replaced calls, if possible, or create a new one with an unknown location instead. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D74925
-
Thomas Lively authored
Summary: Removes patterns that were not doing useful work, changes the default extract instructions to be the unsigned versions now that they are enabled by default, fixes PR44988, and adds tests for sext_inreg lowering. Reviewers: aheejin Reviewed By: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75005
-