summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* clang-format: Fix incorrect multi-var declstmt detection.Daniel Jasper2015-04-202-3/+4
| | | | | | | | | | | | This is now obvious as the pointer alignment behavior was changed. Before (even with pointer alignment "Left"): MACRO Constructor(const int &i) : a(a), b(b) {} After: MACRO Constructor(const int& i) : a(a), b(b) {} llvm-svn: 235301
* Look past locals in comdats.Rafael Espindola2015-04-202-9/+10
| | | | | | | | | | | We have to avoid converting a reference to a global into a reference to a local, but it is fine to look past a local. Patch by Vasileios Kalintiris. I just moved the comment and added thet test. llvm-svn: 235300
* [mips] Support building compiler-rt with gcc.Daniel Sanders2015-04-201-4/+9
| | | | | | | | | | | | | | | | | | | | | Summary: This will allow us to enable it on the buildbot (and then enable a sanitizer buildbot). The problem is that gcc for Mips does not accept -m32/-m64 like clang does. We therefore need to use the nearest equivalent -mips32r2/-mips64r2. We must also specify -mabi=64 in the -mips64r2 case since gcc's default ABI has traditionally been N32 whereas clang's is N64. Reviewers: sagar Reviewed By: sagar Subscribers: llvm-commits, samsonov, kcc, mohit.bhakkad, Anand.Takale, sagar Differential Revision: http://reviews.llvm.org/D8892 llvm-svn: 235299
* [mips][microMIPSr6] Implement initial mapping supportJozef Kolek2015-04-203-2/+40
| | | | | | Differential Revision: http://reviews.llvm.org/D8387 llvm-svn: 235298
* [Asan] Link lit tests shared libraries with -Wl,z,origin on FreeBSDViktor Kutuzov2015-04-201-1/+4
| | | | | | Differential Revision: http://reviews.llvm.org/D8834 llvm-svn: 235297
* [mips][microMIPSr6] Implement initial subtarget supportJozef Kolek2015-04-204-0/+11
| | | | | | Differential Revision: http://reviews.llvm.org/D8386 llvm-svn: 235296
* [X86][FastIsel] Fix assertion failure when selecting int-to-double ↵Andrea Di Biagio2015-04-202-5/+23
| | | | | | | | | | | | | | | | | | | | | | conversion (PR23273). This fixes a regression introduced at revision 231243. The target-independent selection algorithm in FastISel knows how to select a SINT_TO_FP if the target is SSE but not AVX. That is because on X86, the tablegen'd 'fastEmit' functions know how to select CVTSI2SSrr and CVTSI2SDrr. Method X86FastISel::X86SelectSIToFP was therefore working under the wrong assumption that the target was AVX. That assumption was incorrect since we can have a target that is neither AVX nor SSE. So, rather than asserting for the presence of AVX, we should have had an early exit from 'X86SelectSIToFP' if the target was not AVX. This patch fixes the issue replacing the invalid assertion with an early exit. Thanks to Dimitry Andric for reporting this problem and for providing a small reproducible testcase. Added test pr23273.ll. llvm-svn: 235295
* tsan: deflake a testDmitry Vyukov2015-04-201-0/+3
| | | | llvm-svn: 235294
* tsan: fix handling of pthread_detachDmitry Vyukov2015-04-202-1/+36
| | | | | | | | | | Fixes https://llvm.org/bugs/show_bug.cgi?id=23235 If pthread_create is followed by pthread_detach, the new thread may not acquire synchronize with the parent thread. llvm-svn: 235293
* Auto advance pc for signle stepping on arm when emulation failesTamas Berghammer2015-04-201-17/+37
| | | | | | | | | | | The arm instruction emulation handles only some of the opcode (including all of them modifying the PC). For the rest of the instructions we can advance the PC by the size of the instruction as they don't modify the PC on any other way. Differential revision: http://reviews.llvm.org/D9076 llvm-svn: 235292
* Stop read thread of Communication on EOFTamas Berghammer2015-04-201-4/+4
| | | | | | | | | | | | Previously the read thread was only stopped if CloseOnEOF was set on the communication channel. It caused it to spin in case of an EOF because ::select() always reported that we can read from the file descriptor. This CL change this behavior with stopping the read thread on EOF but do a disconnect only if CloseOnEOF is enabled. Differential revision: http://reviews.llvm.org/D9077 llvm-svn: 235291
* [Mips] Write DT_MIPS_OPTIONS tag to .dynamic sectionSimon Atanasyan2015-04-203-4/+26
| | | | | | | If .MIPS.options section exists the DT_MIPS_OPTIONS tag should hold an address of this section. llvm-svn: 235290
* [Mips] Support R_MICROMIPS_PC18_S3/PC19_S2/PC21_S2/PC26_S2 relocations handlingSimon Atanasyan2015-04-205-4/+240
| | | | llvm-svn: 235289
* [Mips] Support R_MICROMIPS_GOT_DISP / PAGE / OFST relocations handlingSimon Atanasyan2015-04-204-2/+474
| | | | llvm-svn: 235288
* Fix buildbot failure on darwin from r235284.Karthik Bhat2015-04-201-0/+2
| | | | llvm-svn: 235287
* Fix bug in Replacement's toString on Windows (missing flush).Manuel Klimek2015-04-201-4/+4
| | | | | | Adapt function to LLVM coding style. llvm-svn: 235286
* [Mips] Support DT_MIPS_OPTIONS dynamic section tag in the llvm-readobjSimon Atanasyan2015-04-203-0/+24
| | | | llvm-svn: 235285
* [NFC] Refactor identification of reductions as common utility function.Karthik Bhat2015-04-204-519/+611
| | | | | | | | | This patch refactors reduction identification code out of LoopVectorizer and exposes them as common utilities. No functional change. Review: http://reviews.llvm.org/D9046 llvm-svn: 235284
* [InlineAsm] Remove EarlyClobber on registers that are also inputsHal Finkel2015-04-202-0/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an inline asm call has an output register marked as early-clobber, but that same register is also an input operand, what should we do? GCC accepts this, and is documented to accept this for read/write operands saying, "Furthermore, if the earlyclobber operand is also a read/write operand, then that operand is written only after it's used." For write-only operands, the situation seems less clear, but I have at least one existing codebase that assumes this will work, in part because it has syscall macros like this: ({ \ register uint64_t r0 __asm__ ("r0") = (__NR_ ## name); \ register uint64_t r3 __asm__ ("r3") = ((uint64_t) (arg0)); \ register uint64_t r4 __asm__ ("r4") = ((uint64_t) (arg1)); \ register uint64_t r5 __asm__ ("r5") = ((uint64_t) (arg2)); \ __asm__ __volatile__ \ ("sc" \ : "=&r"(r0),"=&r"(r3),"=&r"(r4),"=&r"(r5) \ : "0"(r0), "1"(r3), "2"(r4), "3"(r5) \ : "r6","r7","r8","r9","r10","r11","r12","cr0","memory"); \ r3; \ }) Furthermore, with register aliases and subregister relationships that only the backend knows about, rejecting this in the frontend seems like a difficult proposition (if we wanted to do so). However, keeping the early-clobber flag on the INLINEASM MI does not work for us, because it will cause the register's live interval to end to soon (so it will not appear defined to be used as an input). Fortunately, fixing this does not seem hard: When forming the INLINEASM MI, check to see if any of the early-clobber outputs are also inputs, and if so, remove the early-clobber flag. llvm-svn: 235283
* Accept --dynamic-linker <file>.Davide Italiano2015-04-191-1/+1
| | | | | | | | | Before we only accepted --dynamic-linker=<file> and -dynamic-linker <file> but older versions of GNU ld (e.g. 2.17.50) accept this other form, so try to be compatible. PR: 23233 llvm-svn: 235282
* [X86][SSE] Fix for getScalarValueForVectorElement to detect scalar sources ↵Simon Pilgrim2015-04-192-2/+23
| | | | | | | | | | requiring truncation. The fix ensures that scalar sources inserted into a vector are the correct bit size. Integer scalar sources from BUILD_VECTOR and SCALAR_TO_VECTOR nodes may require truncation that this function doesn't currently support. llvm-svn: 235281
* Fix LLDB ARM GCC4.7 broken buildOmair Javaid2015-04-191-1/+1
| | | | llvm-svn: 235280
* [X86][SSE] Extended copysign tests to include llvm intrinsic implementation ↵Simon Pilgrim2015-04-191-7/+125
| | | | | | and constant folding. llvm-svn: 235279
* [mips] Update MIPS relocations listSimon Atanasyan2015-04-191-0/+4
| | | | | | No functional changes. llvm-svn: 235278
* Make ubsan respect log_pathHal Finkel2015-04-192-0/+34
| | | | | | | As with the other sanitizers, it is desirable to allow ubsan's output to be redirected to somewhere other than stderr (and into per-process log files). llvm-svn: 235277
* [Sema] Check availability of ObjC super class and protocols of a containerArgyrios Kyrtzidis2015-04-195-10/+68
| | | | | | | | | | | in the context of the container itself. Otherwise we will emit 'unavailable' errors when referencing an unavailable super class even though the subclass is also marked 'unavailable'. rdar://20598702 llvm-svn: 235276
* Correct machine type for 32-bit armEd Maste2015-04-191-1/+1
| | | | | | Reported by Andrew Turner. llvm-svn: 235275
* Remove constexpr support for std::apply because it introduces regressions.Eric Fiselier2015-04-195-11/+19
| | | | llvm-svn: 235274
* Update isl to a6523fb42c35Tobias Grosser2015-04-194-0/+117
| | | | | | | A minor update mostly documenting the isl coding style as well as adding functions to inspect isl_schedule_constraints objects. llvm-svn: 235273
* [MS ABI] Correctly associate align attrs before the class-keyDavid Majnemer2015-04-195-0/+63
| | | | | | | | | | | | __declspec(align(...)) is unlike all other attributes in that it is not applied to a variable if it appears before the class-key. If the tag in question isn't part of a variable declaration, it is not ignored. Instead, the alignment attribute is applied to the tag. This fixes PR18024. llvm-svn: 235272
* Dependences: Allow to disable dependences computeoutTobias Grosser2015-04-191-2/+3
| | | | llvm-svn: 235271
* Include __mulodi4 in the 32-bit ARM versions of libclang_rt.cc_kext.a.Bob Wilson2015-04-191-0/+1
| | | | | | | This is needed when building the Darwin kernel with -fsanitize=undefined-trap. rdar://problem/12783702 llvm-svn: 235270
* Remove the FCFI option from TargetOptions as it is currently unused.Eric Christopher2015-04-192-12/+1
| | | | llvm-svn: 235269
* Remove CFIFuncName from TargetOptions as it is currently unused.Eric Christopher2015-04-193-30/+1
| | | | llvm-svn: 235268
* Remove the CFIEnforcing flag from TargetOptions as it is unused.Eric Christopher2015-04-193-15/+2
| | | | llvm-svn: 235267
* Remove the CFIType TargetOption as it is unused.Eric Christopher2015-04-192-28/+1
| | | | llvm-svn: 235266
* Remove the JITEmitDebugInfo TargetOptions as they're only set andEric Christopher2015-04-192-36/+2
| | | | | | not used anywhere in llvm. llvm-svn: 235265
* Try to work around failure to convert this lambda to a function pointer in ↵Richard Smith2015-04-191-4/+5
| | | | | | some versions of GCC. llvm-svn: 235264
* [modules] Refactor macro emission. No functionality change.Richard Smith2015-04-191-76/+73
| | | | llvm-svn: 235263
* Remove unnecessary include and probably a layering violation.Craig Topper2015-04-191-1/+0
| | | | llvm-svn: 235262
* [MemCpyOpt] Don't force i64 when promoting memset/memcpy sizes.Ahmed Bougacha2015-04-182-3/+38
| | | | | | | | | | Harden r235258 to support any integer bitwidth. The quick glance at the reference made me think only i32 and i64 were valid types, but they're not special, so any overload is legal. Thanks to David Majnemer for noticing! llvm-svn: 235261
* [X86][AVX2] Force execution domain on broadcast folding tests.Simon Pilgrim2015-04-181-3/+9
| | | | llvm-svn: 235260
* [X86][SSE] Force execution domain on float/double unpack shuffle tests.Simon Pilgrim2015-04-182-12/+36
| | | | llvm-svn: 235259
* [MemCpyOpt] Promote both memset/memcpy sizes if differently typed.Ahmed Bougacha2015-04-182-3/+41
| | | | | | | | | | | | | Followup to r235232, which caused PR23278. We can't assume the memset and memcpy sizes have the same type, as nothing in the language reference prevents that. Instead, zext both to i64 if they disagree. While there, robustify tests by using i8 %c rather than i8 0 for the memset character. llvm-svn: 235258
* [InstCombine] Create zero constants on demand.Benjamin Kramer2015-04-181-4/+2
| | | | | | No functional change intended. llvm-svn: 235257
* Drop unused extern declarationTobias Grosser2015-04-181-2/+0
| | | | llvm-svn: 235256
* Remove usages of host architecture within ELF object file for unknown parts ↵Oleksiy Vyalov2015-04-181-32/+0
| | | | | | | | of ArchSpec. http://reviews.llvm.org/D9078 llvm-svn: 235255
* Clear InsnToMemAcc map in ScopDetection after each runOnFunctionTobias Grosser2015-04-181-0/+1
| | | | | | | | | | | | | | | | Otherwise, instructions in different functions that share the same pointer (due to earlier modifications), might get assigned incorrect memory access information (belonging to instructions in previous functions), which can result in arbitrary memory corruption and assertion failures. This fixes llvm.org/PR23160 and possibly also llvm.org/PR23167. Note: InsnToMemAcc is a global variable that should never have existed in the first place. We will clean this up in a subsequent patch. Reported-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> Debugged-by: Johannes Doerfert <doerfert@cs.uni-saarland.de> llvm-svn: 235254
* Make helper function static. NFC.Benjamin Kramer2015-04-181-3/+3
| | | | llvm-svn: 235253
* Fix typoTobias Grosser2015-04-181-1/+1
| | | | llvm-svn: 235252
OpenPOWER on IntegriCloud