- Aug 20, 2019
-
-
Hans Wennborg authored
> Author: maskray > Date: Thu Jul 11 19:01:51 2019 > New Revision: 365860 > > URL: http://llvm.org/viewvc/llvm-project?rev=365860&view=rev > Log: > [Driver] Refactor interaction between -f(no-)?omit-frame-pointer and -m(no-)?omit-leaf-frame-pointer > > Use a tri-state enum to represent shouldUseFramePointer() and > shouldUseLeafFramePointer(). > > This simplifies the logic and fixes PR9825: > -fno-omit-frame-pointer doesn't imply -mno-omit-leaf-frame-pointer. > > and PR24003: > /Oy- /O2 should not omit leaf frame pointer: this matches MSVC x86-32. > (/Oy- is a no-op on MSVC x86-64.) > > and: > when CC1 option -mdisable-fp-elim if absent, -momit-leaf-frame-pointer > can also be omitted. > > The new behavior matches GCC: > -fomit-frame-pointer wins over -mno-omit-leaf-frame-pointer > -fno-omit-frame-pointer loses out to -momit-leaf-frame-pointer > > The behavior makes lots of sense. We have 4 states: > > - 00) leaf retained, non-leaf retained > - 01) leaf retained, non-leaf omitted (this is invalid) > - 10) leaf omitted, non-leaf retained (what -momit-leaf-frame-pointer was designed for) > - 11) leaf omitted, non-leaf omitted > > "omit" options taking precedence over "no-omit" options is the only way > to make 3 valid states representable with -f(no-)?omit-frame-pointer and > -m(no-)?omit-leaf-pointer. > > Reviewed By: ychen > > Differential Revision: https://reviews.llvm.org/D64294 llvm-svn: 369333
-
- Aug 16, 2019
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r368940 | rsmith | 2019-08-15 00:57:50 +0200 (Thu, 15 Aug 2019) | 19 lines Fix handling of class member access into a vector type. When handling a member access into a non-class, non-ObjC-object type, we would perform a lookup into the surrounding scope as if for an unqualified lookup. If the member access was followed by a '<' and this lookup (or the typo-correction for it) found a template name, we'd treat the member access as naming that template. Now we treat such accesses as never naming a template if the type of the object expression is of vector type, so that vector component accesses are never misinterpreted as naming something else. This is not entirely correct, since it is in fact valid to name a template from the enclosing scope in this context, when invoking a pseudo-destructor for the vector type via an alias template, but that's very much a corner case, and this change leaves that case only as broken as the corresponding case for Objective-C types is. This incidentally adds support for dr2292, which permits a 'template' keyword at the start of a member access naming a pseudo-destructor. ------------------------------------------------------------------------ llvm-svn: 369087
-
Hans Wennborg authored
------------------------------------------------------------------------ r367019 | chill | 2019-07-25 15:56:04 +0200 (Thu, 25 Jul 2019) | 10 lines [AArch64][SVE] Allow explicit size specifier for predicate operand ... for the vector forms of `{SQ,UQ,}{INC,DEC}P` instructions. Also continue supporting the exsting behaviour of not requiring an explicit size specifier. The preferred disasembly is *with* the specifier. This is implemented by redefining intruction forms to require vector predicates with explicit size and adding aliases, which allow a predicate with no size. Differential Revision: https://reviews.llvm.org/D65145 ------------------------------------------------------------------------ llvm-svn: 369086 -
Hans Wennborg authored
------------------------------------------------------------------------ r368873 | void | 2019-08-14 18:44:07 +0200 (Wed, 14 Aug 2019) | 15 lines Ignore indirect branches from callbr. Summary: We can't speculate around indirect branches: indirectbr and invoke. The callbr instruction needs to be included here. Reviewers: nickdesaulniers, manojgupta, chandlerc Reviewed By: chandlerc Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66200 ------------------------------------------------------------------------ llvm-svn: 369085
-
Chris Bieneman authored
llvm-svn: 369017
-
- Aug 15, 2019
-
-
Chris Bieneman authored
llvm-svn: 368894
-
- Aug 14, 2019
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r367084 | kongyi | 2019-07-26 07:17:14 +0200 (Fri, 26 Jul 2019) | 6 lines Fix macOS build after r358716 COPYFILE_CLONE is only defined on newer macOS versions, using it without check breaks build on systems running legacy OS and toolchain. Differential Revision: https://reviews.llvm.org/D65317 ------------------------------------------------------------------------ llvm-svn: 368848
-
Hans Wennborg authored
------------------------------------------------------------------------ r368300 | lenary | 2019-08-08 16:40:54 +0200 (Thu, 08 Aug 2019) | 18 lines [RISCV] Minimal stack realignment support Summary: Currently the RISC-V backend does not realign the stack. This can be an issue even for the RV32I/RV64I ABIs (where the stack is 16-byte aligned), though is rare. It will be much more comment with RV32E (though the alignment requirements for common data types remain under-documented...). This patch adds minimal support for stack realignment. It should cope with large realignments. It will error out if the stack needs realignment and variable sized objects are present. It feels like a lot of the code like getFrameIndexReference and determineFrameLayout could be refactored somehow, as right now it feels fiddly and brittle. We also seem to allocate a lot more memory than GCC does for equivalent C code. Reviewers: asb Reviewed By: asb Subscribers: wwei, jrtc27, s.egerton, MaskRay, Jim, lenary, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62007 ------------------------------------------------------------------------ llvm-svn: 368846
-
Hans Wennborg authored
------------------------------------------------------------------------ r368552 | stulova | 2019-08-12 12:44:07 +0200 (Mon, 12 Aug 2019) | 12 lines [OpenCL] Fix lang mode predefined macros for C++ mode. In C++ mode we should only avoid adding __OPENCL_C_VERSION__, all other predefined macros about the language mode are still valid. This change also fixes the language version check in the headers accordingly. Differential Revision: https://reviews.llvm.org/D65941 ------------------------------------------------------------------------ llvm-svn: 368844
-
Hans Wennborg authored
------------------------------------------------------------------------ r368561 | svenvh | 2019-08-12 14:44:26 +0200 (Mon, 12 Aug 2019) | 9 lines [OpenCL] Ignore parentheses for sampler initialization The sampler handling logic in SemaInit.cpp would inadvertently treat parentheses around sampler arguments as an implicit cast, leading to an unreachable "can't implicitly cast lvalue to rvalue with this cast kind". Fix by ignoring parentheses once we are in the sampler initializer case. Differential Revision: https://reviews.llvm.org/D66080 ------------------------------------------------------------------------ llvm-svn: 368843
-
- Aug 13, 2019
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r368549 | hokein | 2019-08-12 11:35:04 +0200 (Mon, 12 Aug 2019) | 11 lines [clangd] Drop diags from non-written #include. Summary: This would fix that we show weird diagnostics on random lines of the main file. Reviewers: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66074 ------------------------------------------------------------------------ llvm-svn: 368683
-
Hans Wennborg authored
------------------------------------------------------------------------ r367303 | kadircet | 2019-07-30 12:26:51 +0200 (Tue, 30 Jul 2019) | 15 lines [clangd] Ignore diags from builtin files Summary: This fixes a case where we show diagnostics on arbitrary lines, in an internal codebase. Open for ideas on unittesting this. Reviewers: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64863 ------------------------------------------------------------------------ llvm-svn: 368682
-
Hans Wennborg authored
------------------------------------------------------------------------ r368516 | dim | 2019-08-10 21:07:38 +0200 (Sat, 10 Aug 2019) | 25 lines Add support for FreeBSD's LD_32_LIBRARY_PATH Summary: Because the dynamic linker for 32-bit executables on 64-bit FreeBSD uses the environment variable `LD_32_LIBRARY_PATH` instead of `LD_LIBRARY_PATH` to find needed dynamic libraries, running the 32-bit parts of the dynamic ASan tests will fail with errors similar to: ``` ld-elf32.so.1: Shared object "libclang_rt.asan-i386.so" not found, required by "Asan-i386-inline-Dynamic-Test" ``` This adds support for setting up `LD_32_LIBRARY_PATH` for the unit and regression tests. It will likely also require a minor change to the `TestingConfig` class in `llvm/utils/lit/lit`. Reviewers: emaste, kcc, rnk, arichardson Reviewed By: arichardson Subscribers: kubamracek, krytarowski, fedor.sergeev, delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D65772 ------------------------------------------------------------------------ llvm-svn: 368680
-
Hans Wennborg authored
------------------------------------------------------------------------ r368478 | void | 2019-08-09 22:18:30 +0200 (Fri, 09 Aug 2019) | 16 lines [CodeGen] Require a name for a block addr target Summary: A block address may be used in inline assembly. In which case it requires a name so that the asm parser has something to parse. Creating a name for every block address is a large hammer, but is necessary because at the point when a temp symbol is created we don't necessarily know if it's used in inline asm. This ensures that it exists regardless. Reviewers: nickdesaulniers, craig.topper Subscribers: nathanchance, javed.absar, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65352 ------------------------------------------------------------------------ llvm-svn: 368678
-
Hans Wennborg authored
------------------------------------------------------------------------ r368477 | void | 2019-08-09 22:16:31 +0200 (Fri, 09 Aug 2019) | 22 lines [MC] Don't recreate a label if it's already used Summary: This patch keeps track of MCSymbols created for blocks that were referenced in inline asm. It prevents creating a new symbol which doesn't refer to the block. Inline asm may have a reference to a label. The asm parser however doesn't recognize it as a label and tries to create a new symbol. The result being that instead of the original symbol (e.g. ".Ltmp0") the parser replaces it in the inline asm with the new one (e.g. ".Ltmp00") without updating it in the symbol table. So the machine basic block retains the "old" symbol (".Ltmp0"), but the inline asm uses the new one (".Ltmp00"). Reviewers: nickdesaulniers, craig.topper Subscribers: nathanchance, javed.absar, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65304 ------------------------------------------------------------------------ llvm-svn: 368676 -
Hans Wennborg authored
------------------------------------------------------------------------ r368572 | lenary | 2019-08-12 15:51:00 +0200 (Mon, 12 Aug 2019) | 18 lines [RISCV] Fix ICE in isDesirableToCommuteWithShift Summary: Ana Pazos reported a bug where we were not checking that an APInt would fit into 64-bits before calling `getSExtValue()`. This caused asserts when compiling large constants, such as i128s, as happens when compiling compiler-rt. This patch adds a testcase and makes the callback less error-prone. Reviewers: apazos, asb, luismarques Reviewed By: luismarques Subscribers: hiraditya, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66081 ------------------------------------------------------------------------ llvm-svn: 368674
-
Hans Wennborg authored
------------------------------------------------------------------------ r368517 | lebedevri | 2019-08-10 21:28:12 +0200 (Sat, 10 Aug 2019) | 1 line [NFC][InstCombine] Tests for shift amount reassociation in bittest with shift of const ------------------------------------------------------------------------ ------------------------------------------------------------------------ r368518 | lebedevri | 2019-08-10 21:28:44 +0200 (Sat, 10 Aug 2019) | 5 lines [InstCombine] Shift amount reassociation in bittest: drop pointless one-use restriction That one-use restriction is not needed for correctness - we have already ensured that one of the shifts will go away, so we know we won't increase the instruction count. So there is no need for that restriction. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r368519 | lebedevri | 2019-08-10 21:28:54 +0200 (Sat, 10 Aug 2019) | 5 lines [InstCombine] Shift amount reassociation in bittest: relax one-use check when shifting constant If one of the values being shifted is a constant, since the new shift amount is known-constant, the new shift will end up being constant-folded so, we don't need that one-use restriction then. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r368554 | lebedevri | 2019-08-12 13:28:02 +0200 (Mon, 12 Aug 2019) | 6 lines [InstCombine] foldShiftIntoShiftInAnotherHandOfAndInICmp(): avoid constantexpr pitfail (PR42962) Instead of matching value and then blindly casting to BinaryOperator just to get the opcode, just match instruction and do no cast. Fixes https://bugs.llvm.org/show_bug.cgi?id=42962 ------------------------------------------------------------------------ llvm-svn: 368673
-
Hans Wennborg authored
------------------------------------------------------------------------ r368581 | ibiryukov | 2019-08-12 16:35:30 +0200 (Mon, 12 Aug 2019) | 18 lines [clangd] Separate chunks with a space when rendering markdown Summary: This results in better rendering of resulting markdown. Especially noticeable in coc.nvim that does not have a visible horizontal spaces around inline code blocks. More details and a screenshot from coc.nvim can be found in https://github.com/clangd/clangd/issues/95. Reviewers: sammccall Reviewed By: sammccall Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66086 ------------------------------------------------------------------------ llvm-svn: 368670
-
Hans Wennborg authored
------------------------------------------------------------------------ r366541 | hokein | 2019-07-19 10:33:39 +0200 (Fri, 19 Jul 2019) | 11 lines [clangd] cleanup: unify the implemenation of checking a location is inside main file. Summary: We have variant implementations in the codebase, this patch unifies them. Reviewers: ilya-biryukov, kadircet Subscribers: MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64915 ------------------------------------------------------------------------ llvm-svn: 368669
-
- Aug 12, 2019
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r368230 | akhuang | 2019-08-08 00:49:40 +0200 (Thu, 08 Aug 2019) | 2 lines Recommit "[MS] Emit S_HEAPALLOCSITE debug info in Selection DAG" with a fix to clear the SDNode map when SelectionDAG is cleared. ------------------------------------------------------------------------ llvm-svn: 368571
-
Hans Wennborg authored
------------------------------------------------------------------------ r368498 | sammccall | 2019-08-10 01:03:32 +0200 (Sat, 10 Aug 2019) | 25 lines clangd: use -j for background index pool Summary: clangd supports a -j option to limit the amount of threads to use for parsing TUs. However, when using -background-index (the default in later versions of clangd), the parallelism used by clangd defaults to the hardware_parallelisn, i.e. number of physical cores. On shared hardware environments, with large projects, this can significantly affect performance with no way to tune it down. This change makes the -j parameter apply equally to parsing and background index. It's not perfect, because the total number of threads is 2x the -j value, which may still be unexpected. But at least this change allows users to prevent clangd using all CPU cores. Reviewers: kadircet, sammccall Reviewed By: sammccall Subscribers: javed.absar, jfb, sammccall, ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66031 ------------------------------------------------------------------------ llvm-svn: 368569
-
- Aug 09, 2019
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r367802 | baloghadamsoftware | 2019-08-05 08:45:41 +0200 (Mon, 05 Aug 2019) | 6 lines [Analyzer] Iterator Checkers - Fix for Crash on Iterator Differences Iterators differences were mistakenly handled as random decrements which causes an assertion. This patch fixes this. ------------------------------------------------------------------------ llvm-svn: 368427
-
Hans Wennborg authored
llvm-svn: 368426
-
Hans Wennborg authored
------------------------------------------------------------------------ r368324 | ctopper | 2019-08-08 20:11:17 +0200 (Thu, 08 Aug 2019) | 7 lines [X86] Make CMPXCHG16B feature imply CMPXCHG8B feature. This fixes znver1 so that it properly enables CMPXHG8B. We can probably remove explicit CMPXCHG8B from CPUs that also have CMPXCHG16B, but keeping this simple to allow cherry pick to 9.0. Fixes PR42935. ------------------------------------------------------------------------ llvm-svn: 368423
-
Hans Wennborg authored
------------------------------------------------------------------------ r368104 | void | 2019-08-07 00:41:22 +0200 (Wed, 07 Aug 2019) | 13 lines Delay diagnosing asm constraints that require immediates until after inlining Summary: An inline asm call may result in an immediate input value after inlining. Therefore, don't emit a diagnostic here if the input isn't an immediate. Reviewers: joerg, eli.friedman, rsmith Subscribers: asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, s.egerton, krytarowski, mgorny, riccibruno, eraman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D60943 ------------------------------------------------------------------------ ------------------------------------------------------------------------ r368202 | void | 2019-08-07 21:36:48 +0200 (Wed, 07 Aug 2019) | 2 lines Add target requirements for those bots which don't handle x86. ------------------------------------------------------------------------ llvm-svn: 368422
-
Hans Wennborg authored
------------------------------------------------------------------------ r367750 | void | 2019-08-03 07:52:47 +0200 (Sat, 03 Aug 2019) | 15 lines Emit diagnostic if an inline asm constraint requires an immediate Summary: An inline asm call can result in an immediate after inlining. Therefore emit a diagnostic here if constraint requires an immediate but one isn't supplied. Reviewers: joerg, mgorny, efriedma, rsmith Reviewed By: joerg Subscribers: asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, s.egerton, MaskRay, jyknight, dylanmckay, javed.absar, fedor.sergeev, jrtc27, Jim, krytarowski, eraman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60942 ------------------------------------------------------------------------ llvm-svn: 368421
-
Hans Wennborg authored
------------------------------------------------------------------------ r367403 | lenary | 2019-07-31 11:45:55 +0200 (Wed, 31 Jul 2019) | 20 lines [RISCV] Support 'f' Inline Assembly Constraint Summary: This adds the 'f' inline assembly constraint, as supported by GCC. An 'f'-constrained operand is passed in a floating point register. Exactly which kind of floating-point register (32-bit or 64-bit) is decided based on the operand type and the available standard extensions (-f and -d, respectively). This patch adds support in both the clang frontend, and LLVM itself. Reviewers: asb, lewis-revill Reviewed By: asb Subscribers: hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D65500 ------------------------------------------------------------------------ llvm-svn: 368420
-
Hans Wennborg authored
------------------------------------------------------------------------ r367403 | lenary | 2019-07-31 11:45:55 +0200 (Wed, 31 Jul 2019) | 20 lines [RISCV] Support 'f' Inline Assembly Constraint Summary: This adds the 'f' inline assembly constraint, as supported by GCC. An 'f'-constrained operand is passed in a floating point register. Exactly which kind of floating-point register (32-bit or 64-bit) is decided based on the operand type and the available standard extensions (-f and -d, respectively). This patch adds support in both the clang frontend, and LLVM itself. Reviewers: asb, lewis-revill Reviewed By: asb Subscribers: hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D65500 ------------------------------------------------------------------------ llvm-svn: 368419
-
Hans Wennborg authored
------------------------------------------------------------------------ r368315 | tstellar | 2019-08-08 19:23:33 +0200 (Thu, 08 Aug 2019) | 21 lines lit: Use a License classifier that pypi will accept Summary: 'OSI Approved :: Apache-2.0 with LLVM exception' is not a valid classifier. 'OSI Approved :: Apache Software License' is the closest fit for the new license, so we've decided to use this one. The classifiers seem to only be used for searching on the pypi website, so this does not actually change the license of the code. We still pass 'Apache-2.0 with LLVM exception' as the license to setup(), and this appears alongside the classifier on the pypi webpage for lit. Reviewers: chandlerc, ddunbar, joerg Reviewed By: joerg Subscribers: delcypher, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65762 ------------------------------------------------------------------------ llvm-svn: 368414
-
Hans Wennborg authored
By Simon Atanasyan! Differential revision: https://reviews.llvm.org/D65830 llvm-svn: 368412
-
Hans Wennborg authored
By Simon Atanasyan! Differential revision: https://reviews.llvm.org/D65830 llvm-svn: 368411
-
Hans Wennborg authored
------------------------------------------------------------------------ r368058 | sureyeaah | 2019-08-06 19:01:12 +0200 (Tue, 06 Aug 2019) | 11 lines Fixed toHalfOpenFileRange assertion fail Summary: - Added new function that gets Expansion range with both ends in the same file. - Fixes the crash at https://github.com/clangd/clangd/issues/113 Subscribers: ilya-biryukov, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65754 ------------------------------------------------------------------------ llvm-svn: 368407
-
- Aug 08, 2019
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r368041 | psmith | 2019-08-06 16:13:38 +0200 (Tue, 06 Aug 2019) | 16 lines [ELF][ARM] Fix /DISCARD/ of section with .ARM.exidx section The combineEhSections runs, by design, before processSectionCommands so that input exception sections like .ARM.exidx and .eh_frame are not assigned to OutputSections. Unfortunately if /DISCARD/ removes InputSections that have associated .ARM.exidx sections without discarding the .ARM.exidx synthetic section then we will end up crashing when trying to sort the InputSections in ascending address order. We fix this by filtering out the sections that have been discarded prior to processing the InputSections in finalizeContents(). fixes pr42890 Differential Revision: https://reviews.llvm.org/D65759 ------------------------------------------------------------------------ llvm-svn: 368270
-
Hans Wennborg authored
llvm-svn: 368269
-
Hans Wennborg authored
------------------------------------------------------------------------ r366513 | lanza | 2019-07-19 01:40:23 +0200 (Fri, 19 Jul 2019) | 9 lines [cmake] Update NATIVE build variables to account for standalone changes Summary: LLDB_PATH_TO_{CLANG,LLVM}_BUILD were removed and replaced with {LLVM,Clang}_DIR. Adjust the NATIVE build to account for this. Subscribers: mgorny Differential Revision: https://reviews.llvm.org/D64959 ------------------------------------------------------------------------ llvm-svn: 368268
-
- Aug 07, 2019
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r368078 | quantum | 2019-08-06 22:09:04 +0200 (Tue, 06 Aug 2019) | 18 lines [WebAssembly] Fix null pointer in createInitTLSFunction Summary: `createSyntheticSymbols`, which creates `WasmSym::InitTLS`, is only called when `!config->relocatable`, but this condition is not checked when calling `createInitTLSFunction`. This diff checks `!config->relocatable` before calling `createInitTLSFunction`. Fixes https://github.com/emscripten-core/emscripten/issues/9155. Reviewers: tlively, aheejin, kripken, sbc100 Subscribers: dschuff, jgravelle-google, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65785 ------------------------------------------------------------------------ llvm-svn: 368137
-
Hans Wennborg authored
------------------------------------------------------------------------ r367837 | mstorsjo | 2019-08-05 13:57:06 +0200 (Mon, 05 Aug 2019) | 10 lines [MinGW] Add an lld specific option for requesting to delay load libraries With GNU tools, delayload is handled completely differently. (One creates a specific delayload import library using dlltool and then links against it instead of the normal import library.) Instead of requiring using -Xlink=-delayload:lib.dll, we can provide an lld specific option for this. Differential Revision: https://reviews.llvm.org/D65728 ------------------------------------------------------------------------ llvm-svn: 368134
-
Hans Wennborg authored
------------------------------------------------------------------------ r368019 | ibiryukov | 2019-08-06 13:37:50 +0200 (Tue, 06 Aug 2019) | 28 lines [clangd] Compute scopes eagerly in IncludeFixer Summary: Computing lazily leads to crashes. In particular, computing scopes may produce diagnostics (from inside template instantiations) and we currently do it when processing another diagnostic, which leads to crashes. Moreover, we remember and access 'Scope*' when computing scopes. This might lead to invalid memory access if the Scope is deleted by the time we run the delayed computation. We did not actually construct an example when this happens, though. From the VCS and review history, it seems the optimization was introduced in the initial version without a mention of any performance benchmarks justifying the performance gains. This led me to a conclusion that the optimization was premature, so removing it to avoid crashes seems like the right trade-off at that point. Reviewers: sammccall Reviewed By: sammccall Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65796 ------------------------------------------------------------------------ llvm-svn: 368133
-
- Aug 06, 2019
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r367898 | evandro | 2019-08-05 20:09:14 +0200 (Mon, 05 Aug 2019) | 22 lines [AArch64] Expand bcmp() for small block lengths Patch D56593 by @courbet results in calls to `bcmp()` in some cases, should the target support the it. Unless `TTI::MemCmpExpansionOptions()` is overridden by the target. In a proprietary benchmark we see a performance drop of about 12% on PNG compression before this patch, though it passes all tests. This patch mirrors X86 for AArch64 and initializes `TTI::MemCmpExpansionOptions()` to then expand calls to `bcmp()` when appropriate. No tuning of the parameters was performed, but, at this point, it's enough to recover the performance drop above. This problem also exists on ARM. Once a consensus is reached for AArch64, we can work to fix ARM as well. Authors: - Evandro Menezes (@evandro) <e.menezes@samsung.com> - Brian Rzycki (@brzycki) <b.rzycki@samsung.com> Differential revision: https://reviews.llvm.org/D64805 ------------------------------------------------------------------------ llvm-svn: 368017
-
Hans Wennborg authored
------------------------------------------------------------------------ r368004 | hans | 2019-08-06 11:30:10 +0200 (Tue, 06 Aug 2019) | 1 line test-release.sh: Reorder sed commands for the binary comparison ------------------------------------------------------------------------ llvm-svn: 368005
-