- 10 Sep, 2018 4 commits
-
-
Hans Wennborg authored
llvm-svn: 341805
-
Hans Wennborg authored
llvm-svn: 341804
-
Hans Wennborg authored
```--------------------------------------------------------------------- r341642 | tnorthover | 2018-09-07 11:21:25 +0200 (Fri, 07 Sep 2018) | 8 lines ARM: fix Thumb2 CodeGen for ldrex with folded frame-index. Because t2LDREX (& t2STREX) were marked as AddrModeNone, but did allow a FrameIndex operand, rewriteT2FrameIndex asserted. This gives them a proper addressing-mode and tells the rewriter about it so that encodable offsets are exploited and others are rejected. Should fix PR38828. ``` --------------------------------------------------------------------- llvm-svn: 341783
-
Hans Wennborg authored
```--------------------------------------------------------------------- r341670 | tstellar | 2018-09-07 17:42:01 +0200 (Fri, 07 Sep 2018) | 15 lines MachO: Fix out-of-bounds memory access in getString16 Summary: This fixes the following tests when gcc is compiled with gcc8: lld :: mach-o/do-not-emit-unwind-fde-arm64.yaml lld :: mach-o/eh-frame-relocs-arm64.yaml llvm.org/PR38096 Reviewers: lhames, kledzik, javed.absar Subscribers: kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D51547 ``` --------------------------------------------------------------------- ------------------------------------------------------------------------ r341672 | tstellar | 2018-09-07 17:51:52 +0200 (Fri, 07 Sep 2018) | 3 lines MachO: Change getString16() back to inline function This was accidentally changed in r341670. ------------------------------------------------------------------------ llvm-svn: 341780
-
- 07 Sep, 2018 6 commits
-
-
Hans Wennborg authored
llvm-svn: 341665
-
Hans Wennborg authored
llvm-svn: 341664
-
Hans Wennborg authored
llvm-svn: 341663
-
Hans Wennborg authored
llvm-svn: 341662
-
Hans Wennborg authored
llvm-svn: 341661
-
Hans Wennborg authored
llvm-svn: 341640
-
- 06 Sep, 2018 7 commits
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r341512 | ctopper | 2018-09-06 04:03:14 +0200 (Thu, 06 Sep 2018) | 7 lines [X86][Assembler] Allow %eip as a register in 32-bit mode for .cfi directives. This basically reverts a change made in r336217, but improves the text of the error message for not allowing IP-relative addressing in 32-bit mode. Fixes PR38826. Patch by Iain Sandoe. ``` --------------------------------------------------------------------- llvm-svn: 341530
-
Hans Wennborg authored
```--------------------------------------------------------------------- r340609 | ldionne | 2018-08-24 16:10:28 +0200 (Fri, 24 Aug 2018) | 13 lines [libc++] Fix handling of negated character classes in regex Summary: This commit fixes a regression introduced in r316095, where we don't match inverted character classes when there's no negated characrers in the []'s. rdar://problem/43060054 Reviewers: mclow.lists, timshen, EricWF Subscribers: christof, dexonsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D50534 ``` --------------------------------------------------------------------- llvm-svn: 341529
-
Hans Wennborg authored
```--------------------------------------------------------------------- r341442 | bcain | 2018-09-05 04:15:54 +0200 (Wed, 05 Sep 2018) | 8 lines Add glibc_prereq to platform limits mmsghdr sendmmsg requires glibc >= 2.14. Fixes PR38589. Review: https://reviews.llvm.org/D51538 ``` --------------------------------------------------------------------- llvm-svn: 341524
-
Hans Wennborg authored
```--------------------------------------------------------------------- r341416 | annat | 2018-09-05 00:12:23 +0200 (Wed, 05 Sep 2018) | 11 lines [LV] First order recurrence phis should not be treated as uniform This is fix for PR38786. First order recurrence phis were incorrectly treated as uniform, which caused them to be vectorized as uniform instructions. Patch by Ayal Zaks and Orivej Desh! Reviewed by: Anna Differential Revision: https://reviews.llvm.org/D51639 ``` --------------------------------------------------------------------- llvm-svn: 341523
-
Hans Wennborg authored
llvm-svn: 341522
-
Hans Wennborg authored
llvm-svn: 341521
-
Hans Wennborg authored
llvm-svn: 341520
-
- 05 Sep, 2018 1 commit
-
-
Hans Wennborg authored
Patch by Lei Huang! llvm-svn: 341453
-
- 04 Sep, 2018 6 commits
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r339253 | psmith | 2018-08-08 16:50:33 +0200 (Wed, 08 Aug 2018) | 7 lines Add missing REQUIRES x86 to tests. Add REQUIRES to tests that fail when an x86 backend is not present. Differential Revision: https://reviews.llvm.org/D50440 ``` --------------------------------------------------------------------- llvm-svn: 341367
-
Hans Wennborg authored
llvm-svn: 341359
-
David Chisnall authored
llvm-svn: 341355
-
David Chisnall authored
The code remains so that we can potentially reenable it in a point release, but the driver will reject it. Several issues were raised during testing that made it clear that this was not quite ready for general consumption. Approved by: Hans Wennborg llvm-svn: 341354
-
Hans Wennborg authored
```--------------------------------------------------------------------- r340959 | mareko | 2018-08-29 22:03:00 +0200 (Wed, 29 Aug 2018) | 9 lines AMDGPU: Handle 32-bit address wraparounds for SMRD opcodes Summary: This fixes GPU hangs with OpenGL bindless handle arithmetic. Reviewers: arsenm, nhaehnle Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D51203 ``` --------------------------------------------------------------------- llvm-svn: 341351
-
Hans Wennborg authored
```--------------------------------------------------------------------- r341244 | tstellar | 2018-08-31 22:15:31 +0200 (Fri, 31 Aug 2018) | 11 lines lit: Use sys.executable for executing builtin commands Summary: The python executable may not exist on all systems so use sys.executable instead. Reviewers: ddunbar, stella.stamenova Subscribers: delcypher, llvm-commits Differential Revision: https://reviews.llvm.org/D51511 ``` --------------------------------------------------------------------- llvm-svn: 341349
-
- 31 Aug, 2018 3 commits
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r341094 | efriedma | 2018-08-30 20:59:24 +0200 (Thu, 30 Aug 2018) | 11 lines [SROA] Fix alignment for uses of PHI nodes. Splitting an alloca can decrease the alignment of GEPs into the partition. Normally, rewriting accounts for this, but the code was missing for uses of PHI nodes and select instructions. Fixes https://bugs.llvm.org/show_bug.cgi?id=38707 . Differential Revision: https://reviews.llvm.org/D51335 ``` --------------------------------------------------------------------- llvm-svn: 341220
-
Simon Atanasyan authored
Differential revision: https://reviews.llvm.org/D51355 llvm-svn: 341203
-
Simon Atanasyan authored
Differential revision: https://reviews.llvm.org/D51356 llvm-svn: 341201
-
- 30 Aug, 2018 9 commits
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r340900 | hans | 2018-08-29 08:55:27 +0200 (Wed, 29 Aug 2018) | 6 lines LoopSink: Don't sink into blocks without an insertion point (PR38462) In the PR, LoopSink was trying to sink into a catchswitch block, which doesn't have a valid insertion point. Differential Revision: https://reviews.llvm.org/D51307 ``` --------------------------------------------------------------------- llvm-svn: 341048
-
Hans Wennborg authored
```--------------------------------------------------------------------- r340751 | hans | 2018-08-27 17:55:39 +0200 (Mon, 27 Aug 2018) | 7 lines Use a lambda for calls to ::open in RetryAfterSignal In Bionic, open can be overloaded for _FORTIFY_SOURCE support, causing compile errors of RetryAfterSignal due to overload resolution. Wrapping the call in a lambda avoids this. Based on a patch by Chih-Wei Huang <cwhuang@linux.org.tw>! ``` --------------------------------------------------------------------- llvm-svn: 341044
-
Hans Wennborg authored
```--------------------------------------------------------------------- r340417 | hakzsam | 2018-08-22 18:08:48 +0200 (Wed, 22 Aug 2018) | 14 lines AMDGPU: bump AS.MAX_COMMON_ADDRESS to 6 since 32-bit addr space 32-bit constant address space is declared as 6, so the maximum number of address spaces is 6, not 5. Fixes "LLVM ERROR: Pointer address space out of range". v5: rename MAX_COMMON_ADDRESS to MAX_AMDGPU_ADDRESS v4: - fix compilation issues - fix out of bounds access v3: use static_assert() v2: add a very simple test for 32-bit addr space Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106630 ``` --------------------------------------------------------------------- llvm-svn: 341041 -
Hans Wennborg authored
```--------------------------------------------------------------------- r340416 | hakzsam | 2018-08-22 18:08:43 +0200 (Wed, 22 Aug 2018) | 8 lines AMDGPU: fix existing alias rules for constant and global Constant and global may alias, also one rules table wasn't ordered correctly. Pinpointed by Matt. v2: add a test with swapped parameters ``` --------------------------------------------------------------------- llvm-svn: 341040
-
Hans Wennborg authored
```--------------------------------------------------------------------- r340455 | yhs | 2018-08-22 23:21:03 +0200 (Wed, 22 Aug 2018) | 38 lines bpf: fix an assertion in BPFAsmBackend applyFixup() Fix bug https://bugs.llvm.org/show_bug.cgi?id=38643 In BPFAsmBackend applyFixup(), there is an assertion for FixedValue to be 0. This may not be true, esp. for optimiation level 0. For example, in the above bug, for the following two static variables: @bpf_map_lookup_elem = internal global i8* (i8*, i8*)* inttoptr (i64 1 to i8* (i8*, i8*)*), align 8 @bpf_map_update_elem = internal global i32 (i8*, i8*, i8*, i64)* inttoptr (i64 2 to i32 (i8*, i8*, i8*, i64)*), align 8 The static variable @bpf_map_update_elem will have a symbol offset of 8 and a FK_SecRel_8 with FixupValue 8 will cause the assertion if llvm is built with -DLLVM_ENABLE_ASSERTIONS=ON. The above relocations will not exist if the program is compiled with optimization level -O1 and above as the compiler optimizes those static variables away. In the below error message, -O2 is suggested as this is the common practice. Note that FixedValue = 0 in applyFixup() does exist and is valid, e.g., for the global variable my_map in the above bug. The bpf loader will process them properly for map_id's before loading the program into the kernel. The static variables, which are not optimized away by compiler, may have FK_SecRel_8 relocation with non-zero FixedValue. The patch removed the offending assertion and will issue a hard error as below if the FixedValue in applyFixup() is not 0. $ llc -march=bpf -filetype=obj fixup.ll LLVM ERROR: Unsupported relocation: try to compile with -O2 or above, or check your static variable usage Signed-off-by:
Yonghong Song <yhs@fb.com> ``` --------------------------------------------------------------------- llvm-svn: 341038
-
Hans Wennborg authored
```--------------------------------------------------------------------- r340820 | uabelho | 2018-08-28 14:40:11 +0200 (Tue, 28 Aug 2018) | 34 lines [CloneFunction] Constant fold terminators before checking single predecessor Summary: This fixes PR31105. There is code trying to delete dead code that does so by e.g. checking if the single predecessor of a block is the block itself. That check fails on a block like this bb: br i1 undef, label %bb, label %bb since that has two (identical) predecessors. However, after the check for dead blocks there is a call to ConstantFoldTerminator on the basic block, and that call simplifies the block to bb: br label %bb Therefore we now do the call to ConstantFoldTerminator before the check if the block is dead, so it can realize that it really is. The original behavior lead to the block not being removed, but it was simplified as above, and then we did a call to Dest->replaceAllUsesWith(&*I); with old and new being equal, and an assertion triggered. Reviewers: chandlerc, fhahn Reviewed By: fhahn Subscribers: eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D51280 ``` --------------------------------------------------------------------- llvm-svn: 341037 -
Hans Wennborg authored
```--------------------------------------------------------------------- r340839 | bcain | 2018-08-28 18:23:39 +0200 (Tue, 28 Aug 2018) | 14 lines [debuginfo] generate debug info with asm+.file Summary: For assembly input files, generate debug info even when the .file directive is present, provided it does not include a file-number argument. Fixes PR38695. Reviewers: probinson, sidneym Subscribers: aprantl, hiraditya, JDevlieghere, llvm-commits Differential Revision: https://reviews.llvm.org/D51315 ``` --------------------------------------------------------------------- llvm-svn: 341036
-
Hans Wennborg authored
```--------------------------------------------------------------------- r338877 | nico | 2018-08-03 14:00:12 +0200 (Fri, 03 Aug 2018) | 19 lines lld-link: Fix subsystem inference for non-console apps on 32-bit, and fix entry point inference on 32-bit with /nodefaultlib LinkerDriver::inferSubsystem() used to do Symtab->findUnderscore("WinMain"), but WinMain is stdcall in 32-bit and is hence is called _WinMain@16. Instead, Symtab->findMangle(mangle("WinMain")) needs to be called. But since LinkerDriver::inferSubsystem() and LinkerDriver::findDefaultEntry() both need to call this, introduce a common helper function for this and call it from both places. (Also call it for "main" for consistency, even though findUnderscore() is enough for main since that's __cdecl on 32-bit). This also exposed a bug for /nodefaultlib entrypoint inference: The code here called findMangle(Sym) instead of findMangle(mangle(Sym)), again doing the wrong thing on 32-bit. Fix that too. While here, make Driver::mangle() a static free function. https://reviews.llvm.org/D50184 ``` --------------------------------------------------------------------- ------------------------------------------------------------------------ r338911 | nico | 2018-08-03 20:32:44 +0200 (Fri, 03 Aug 2018) | 7 lines lld-link: Simplify LinkerDriver::findDefaultEntry() No intended behavior change. Not repeating the CRTStartup names makes fixing PR36523 simpler. https://reviews.llvm.org/D50253 ------------------------------------------------------------------------ ------------------------------------------------------------------------ r339165 | nico | 2018-08-07 21:10:28 +0200 (Tue, 07 Aug 2018) | 26 lines lld-link: Take /SUBSYSTEM into account for automatic /ENTRY detection. If /subsystem:windows is passed, link.exe only looks for WinMain and wWinMain, and if /subsystem:console is passed it only looks for main and wmain. lld-link used to look for all 4 in both cases. This patch makes lld-link match link.exe's behavior. This requires that the subsystem is known by the time findDefaultEntry() gets called. findDefaultEntry() is called before the main link loop, so that the loop can mark the entry point as undefined. That means inferSubsystem() has to be called above the main loop as well. This in turn means /subsystem: from .drectve sections only has an effect on entry point inference for obj files passed to lld-link directly (and not in obj files found later in .lib files). link.exe seems to ignore /subsystem: for obj files from lib files completely (while in lld it's ignored only for entry point detection but it still overrides /subsystem: flags passed on the command line for the value that gets written in the output file). Also, if the subsytem isn't needed (e.g. when only writing a /def: lib file and not writing a coff file), link.exe doesn't complain if the subsystem isn't known, so both subsystem and entry point handling should be below the early return lld has for that case. Fixes PR36523. https://reviews.llvm.org/D50316 ------------------------------------------------------------------------ llvm-svn: 341035 -
Hans Wennborg authored
```--------------------------------------------------------------------- r340823 | marshall | 2018-08-28 15:29:30 +0200 (Tue, 28 Aug 2018) | 1 line Use addressof instead of operator& in make_shared. Fixes PR38729. As a drive-by, make the same change in raw_storage_iterator (twice). ``` --------------------------------------------------------------------- llvm-svn: 341034
-
- 29 Aug, 2018 1 commit
-
-
Anastasia Stulova authored
Differential Revision: https://reviews.llvm.org/D51212 llvm-svn: 340910
-
- 28 Aug, 2018 2 commits
-
-
Simon Atanasyan authored
Differential revision: https://reviews.llvm.org/D51309 llvm-svn: 340803
-
Hans Wennborg authored
```--------------------------------------------------------------------- r340758 | vitalybuka | 2018-08-27 19:26:28 +0200 (Mon, 27 Aug 2018) | 5 lines Revert "[lsan] Do not check for leaks in the forked process" Users need leak reports in forks. This reverts commit r334036. ``` --------------------------------------------------------------------- ------------------------------------------------------------------------ r340769 | vitalybuka | 2018-08-27 21:15:05 +0200 (Mon, 27 Aug 2018) | 3 lines [lsan] Check that leak sanitizer works in the forked process Regression test for PR38698 ------------------------------------------------------------------------ llvm-svn: 340801
-
- 27 Aug, 2018 1 commit
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r340641 | stefanp | 2018-08-24 21:38:29 +0200 (Fri, 24 Aug 2018) | 9 lines [Exception Handling] Unwind tables are required for all functions that have an EH personality. This patch is for defect: https://bugs.llvm.org/show_bug.cgi?id=32611 Functions may require unwind tables even if they are marked with the attribute nounwind. Any function with an EH personality may require an unwind table. Differential Revision: https://reviews.llvm.org/D50987 ``` --------------------------------------------------------------------- llvm-svn: 340731
-