summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Change the diagnostic group for unsupported gcc optimizations added r212805Alp Toker2014-07-142-8/+8
| | | | | | | | | | Use -Winvalid-command-line-argument here to align with existing gcc opt diagnostics. Meanwhile -Wunused-command-line-argument is for flags that we support but were, say, fed into the wrong invocation. Also tweak wording to make sense with -Werror. llvm-svn: 212964
* Use pointer type cast helpers.Matt Arsenault2014-07-141-3/+2
| | | | llvm-svn: 212963
* Add CreatePointerBitCastOrAddrSpaceCast to IRBuilder and co.Matt Arsenault2014-07-145-8/+70
| | | | llvm-svn: 212962
* Update comments to include addrspacecastMatt Arsenault2014-07-141-2/+2
| | | | llvm-svn: 212961
* Remove GCC 3.3 workaroundMatt Arsenault2014-07-141-8/+3
| | | | llvm-svn: 212960
* [ASan/Win] Add a test for the case when dll_thunk is linked twice to the ↵Timur Iskhodzhanov2014-07-142-0/+20
| | | | | | | | same DLL This is a test case for r212815. llvm-svn: 212959
* Fix for libc++abi when using -Wl,--as-needed.Dan Albert2014-07-143-0/+10
| | | | | | | | | | | The cmake files for libc++abi and the unwinder weren't linking against libpthread or an unwind library. If the tests were linked with -Wl,--as-needed, these libraries wouldn't be linked, causing them to fail. Patch contributed by İsmail Dönmez. llvm-svn: 212958
* Improve error recovery around colon.Serge Pavlov2014-07-144-24/+142
| | | | | | | | | Recognize additional cases, when '::' is mistyped as ':'. This is a fix to RP18587 - colons have too much protection in member-declarations. Differential Revision: http://reviews.llvm.org/D3653 llvm-svn: 212957
* X86: correct 64-bit atomics on 32-bitSaleem Abdulrasool2014-07-142-12/+9
| | | | | | | | | | | | | | | | We would emit a libcall for a 64-bit atomic on x86 after SVN r212119. This was due to the misuse of hasCmpxchg16 to indicate if cmpxchg8b was supported on a 32-bit target. They were added at different times and would result in the border condition being mishandled. This fixes the border case to emit the cmpxchg8b instruction for 64-bit atomic operations on x86 at the cost of restoring a long-standing bug in the codegen. We emit a cmpxchg8b on all x86 targets even where the CPU does not support this instruction (pre-Pentium CPUs). Although this bug should be fixed, this was present prior to SVN r212119 and this change, so this is not really introducing a regression. llvm-svn: 212956
* CodeGen: add missing includeSaleem Abdulrasool2014-07-141-0/+1
| | | | | | | Found during windows unwinding work. This header is indirectly included through a chain leading through Support/Win64EH.h. Explicitly include the header. NFC. llvm-svn: 212955
* CodeGen: Let arrays be inputs to inline asmDavid Majnemer2014-07-143-5/+20
| | | | | | | | | | | An array showing up in an inline assembly input is accepted in ICC and GCC 4.8 This fixes PR20201. Differential Revision: http://reviews.llvm.org/D4382 llvm-svn: 212954
* llvm-objdump: Handle BSS sections larger than the object fileDavid Majnemer2014-07-143-4/+14
| | | | | | | | | The size of the uninitialized sections, like BSS, can exceed the size of the object file. Do not attempt to grab the contents of such sections. llvm-svn: 212953
* [tsan] honour XFAIL in tsan/test_output.shKostya Serebryany2014-07-141-0/+4
| | | | llvm-svn: 212952
* [tsan] add a printf to a testKostya Serebryany2014-07-141-0/+1
| | | | llvm-svn: 212951
* ARM: Add NOP intrinsic mapping in arm_acle.hYi Kong2014-07-142-2/+16
| | | | llvm-svn: 212950
* [Mips] Fix test case expectations due the latest changes in the LLVM.Simon Atanasyan2014-07-148-59/+59
| | | | llvm-svn: 212949
* X86: remove temporary atomicrmw used during lowering.Tim Northover2014-07-142-2/+6
| | | | | | | | | | | We construct a temporary "atomicrmw xchg" instruction when lowering atomic stores for widths that aren't supported natively. This isn't on the top-level worklist though, so it won't be removed automatically and we have to do it ourselves once that itself has been lowered. Thanks Saleem for pointing this out! llvm-svn: 212948
* ARM: Implement __builtin_arm_nop intrinsicYi Kong2014-07-145-0/+15
| | | | | | | | | | | This patch implements __builtin_arm_nop intrinsic for AArch32 and AArch64, which generates hint 0x0, the alias of NOP instruction. This intrinsic is necessary to implement ACLE __nop intrinsic. Differential Revision: http://reviews.llvm.org/D4495 llvm-svn: 212947
* Re-commit: [mips] Correct section alignments and EntrySizes for .bss, .text, ↵Daniel Sanders2014-07-1412-221/+235
| | | | | | | | .data, .reginfo, .MIPS.options, and .MIPS.abiflags The lld tests will temporarily fail again but Simon Atanasyan will commit a fix for those shortly. llvm-svn: 212946
* Revert: [mips] Correct section alignments and EntrySizes for .bss, .text, ↵Daniel Sanders2014-07-1412-235/+221
| | | | | | | | .data, .reginfo, .MIPS.options, and .MIPS.abiflags This commit causes multiple lld tests to fail. Reverting while I investigate the issue. llvm-svn: 212945
* [tsan] add a currently-failing test with a must-deadlockKostya Serebryany2014-07-141-0/+49
| | | | llvm-svn: 212944
* [ASan] Fix a couple of nits in NULL deref testsTimur Iskhodzhanov2014-07-142-3/+3
| | | | | | This is a follow-up to r212807 llvm-svn: 212943
* [clang-tidy] Add a checker for swapped arguments.Benjamin Kramer2014-07-145-0/+204
| | | | | | | | | This looks for swapped arguments by looking at implicit conversions of arguments void Foo(int, double); Foo(1.0, 3); // Most likely a bug llvm-svn: 212942
* Set up clang-tidy diagnostic consumer to print types etc.Alexander Kornienko2014-07-143-0/+10
| | | | | | | | | | | | Reviewers: bkramer Reviewed By: bkramer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4494 llvm-svn: 212941
* [ASTMatchers] Make hasOverloadedOperatorName also match freestanding overloads.Benjamin Kramer2014-07-143-5/+12
| | | | | | | | | Freestanding overloads are represented as FunctionDecls in the AST, make the matcher also match them. Differential Revision: http://reviews.llvm.org/D4493 llvm-svn: 212940
* [mips] Correct section alignments and EntrySizes for .bss, .text, .data, ↵Daniel Sanders2014-07-1412-221/+235
| | | | | | | | | | | | | | | | | | .reginfo, .MIPS.options, and .MIPS.abiflags Summary: .bss, .text, and .data are at least 16-byte aligned. .reginfo is 4-byte aligned and has a 24-byte EntrySize. .MIPS.abiflags has an 24-byte EntrySize. .MIPS.options is 8-byte aligned and has 1-byte EntrySize. Using a 1-byte EntrySize for .MIPS.options seems strange because the records are neither 1-byte long nor fixed-length but this matches the value that GAS emits. Differential Revision: http://reviews.llvm.org/D4487 llvm-svn: 212939
* [mips] For the FP64A ABI, odd-numbered double-precision moves must not use ↵Daniel Sanders2014-07-147-71/+443
| | | | | | | | | | | | | | | | | | | | | mtc1/mfc1. Summary: This is because the FP64A the hardware will redirect 32-bit reads/writes from/to odd-numbered registers to the upper 32-bits of the corresponding even register. In effect, simulating FR=0 mode when FR=0 mode is not available. Unfortunately, we have to make the decision to avoid mfc1/mtc1 before register allocation so we currently do this for even registers too. FPXX has a similar requirement on 32-bit architectures that lack mfhc1/mthc1 so this patch also handles the affected moves from the FPU for FPXX too. Moves to the FPU were supported by an earlier commit. Differential Revision: http://reviews.llvm.org/D4484 llvm-svn: 212938
* [sanitizer] Intercept getpass.Evgeniy Stepanov2014-07-143-0/+51
| | | | llvm-svn: 212937
* [mips] Use MFHC1 when it is available (MIPS32r2 and later) for both FP32 and ↵Daniel Sanders2014-07-146-186/+182
| | | | | | | | | | | | | | FP64 moves Summary: This is similar to r210771 which did the same thing for MTHC1. Also corrected MTHC1_D32 and MTHC1_D64 which used AFGR64 and FGR64 on the wrong definitions. Differential Revision: http://reviews.llvm.org/D4483 llvm-svn: 212936
* clang-format: Improve cast detection (fix false positive).Daniel Jasper2014-07-142-0/+3
| | | | | | | | | | Before: fn(a)(b)+1; After: fn(a)(b) + 1; llvm-svn: 212935
* [CMake][Win32.DLL] Let llvm_add_library(SHARED) link dependent libraries as ↵NAKAMURA Takumi2014-07-141-0/+7
| | | | | | | | | | | | | | PRIVATE. For example, c-index-test.exe requires just libclang.dll (its import library). When libraries in libclang were not PRIVATE but PUBLIC, c-index-test required libraries transitive by libclang. Note, on mingw with BUILD_SHARED_LIBS, library dependencies would become more strict. In principle, required libraries should be "required in its source file". This will help to detect missing dependencies. llvm-svn: 212934
* AArch64: remove unnecessary pseudo-instruction.Tim Northover2014-07-143-17/+5
| | | | | | | Sufficiently twisted use of TableGen lets us write patterns directly for f16 (as an i16 promoted to i32) -> f32 conversion. llvm-svn: 212933
* [mips] Correct the AFL_FLAGS1_ODDSPREG flag in .MIPS.abiflags when no ↵Daniel Sanders2014-07-1410-11/+26
| | | | | | | | '.module oddspreg' is used Differential Revision: http://reviews.llvm.org/D4486 llvm-svn: 212932
* [x32] Add __ILP32__ macro for ILP32 platformsPavel Chupin2014-07-142-0/+168
| | | | | | | | | | | | | | | | Summary: Add __ILP32__ and _ILP32 macro for corresponding platforms. Cover x86_64-*-*-gnux32 with test. Test Plan: test added Reviewers: chandlerc, atanasyan Subscribers: cfe-commits, dschuff, zinovy.nis Differential Revision: http://reviews.llvm.org/D4473 llvm-svn: 212931
* [mips] Expand BuildPairF64 to a spill and reload when the O32 FPXX ABI isSasa Stankovic2014-07-148-13/+226
| | | | | | | | | | | | | | | enabled and mthc1 and dmtc1 are not available (e.g. on MIPS32r1) This prevents the upper 32-bits of a double precision value from being moved to the FPU with mtc1 to an odd-numbered FPU register. This is necessary to ensure that the code generated executes correctly regardless of the current FPU mode. MIPS32r2 and above continues to use mtc1/mthc1, while MIPS-IV and above continue to use dmtc1. Differential Revision: http://reviews.llvm.org/D4465 llvm-svn: 212930
* [msan] Stop demangling function name in the stack origin report.Evgeniy Stepanov2014-07-142-2/+21
| | | | | | | | This was done by calling __cxa_demangle directly, which is bad when c++abi library is instrumented. The following line always contains the demangled name (when running with a symbolizer) anyway. llvm-svn: 212929
* [Mips] Delete the empty directory.Simon Atanasyan2014-07-140-0/+0
| | | | llvm-svn: 212928
* [Mips] Remove unused test input file.Simon Atanasyan2014-07-141-55/+0
| | | | llvm-svn: 212927
* [asan] Remove XFAIL:android from 2 newly passing tests.Evgeniy Stepanov2014-07-142-6/+0
| | | | | | Fixed in r212872. llvm-svn: 212926
* DeadCodeElimination: Fix liveout computationTobias Grosser2014-07-142-17/+32
| | | | | | | | | | | | | | | We move back to a simple approach where the liveout is the last must-write statement for a data-location plus all may-write statements. The previous approach did not work out. We would have to consider per-data-access dependences, instead of per-statement dependences to correct it. As this adds complexity and it seems we would not gain anything over the simpler approach that we implement in this commit, I moved us back to the old approach of computing the liveout, but enhanced it to also add may-write accesses. We also fix the test case and explain why we can not perform dead code elimination in this case. llvm-svn: 212925
* Suggest automated replacements of C-style casts with C++ casts.Alexander Kornienko2014-07-142-18/+183
| | | | | | | | | | | | | | | | | | Summary: This patch implements a subset of possible replacements of C-style casts with const_cast/static_cast/reinterpret_cast. This should cover a large portion of cases in real code. Handling of a few more cases may be implemented eventually. Reviewers: sbenza, djasper Reviewed By: djasper Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4478 llvm-svn: 212924
* Modified gdb-remote tests to run with automatically-chosen ports.Todd Fiala2014-07-144-99/+131
| | | | | | | | | | | | Now that llgs supports communicating the 0-port choose-a-port mechanism and can communicate that back to a caller via the --named-pipe option (at parity with debugserver), we use this mechanism to always start llgs and debugserver gdb-remote protocol tests without needing to use some port arbitration mechanism. This eliminates some potential intermittent failures vs. the previous random port and collision-avoidance strategy used. llvm-svn: 212923
* Support lowering of empty aggregates.Bill Wendling2014-07-142-11/+42
| | | | | | | | | | | | | This crash was pretty common while compiling Rust for iOS (armv7). Reason - SjLj preparation step was lowering aggregate arguments as ExtractValue + InsertValue. ExtractValue has assertion which checks that there is some data in value, which is not true in case of empty (no fields) structures. Rust uses them quite extensively so this patch uses a 'select true, %val, undef' instruction to lower the argument. Patch by Valerii Hiora. llvm-svn: 212922
* [CMake] LINK_COMPONENTS: Add also corresponding MCTargetDesc and TargetInfo ↵NAKAMURA Takumi2014-07-141-0/+9
| | | | | | as well, when target names or "nativecodegen" are specified. llvm-svn: 212921
* [CMake] Update libdeps.NAKAMURA Takumi2014-07-1424-0/+33
| | | | llvm-svn: 212920
* [CMake] Reorder libdeps by alphabetical order.NAKAMURA Takumi2014-07-145-6/+6
| | | | llvm-svn: 212919
* NVPTX/LLVMBuild.txt: Add "Scalar" to required_libraries. It is really ↵NAKAMURA Takumi2014-07-141-1/+1
| | | | | | referenced. llvm-svn: 212918
* Object/LLVMBuild.txt: Sort required_libraries by alphabetical order.NAKAMURA Takumi2014-07-141-1/+1
| | | | llvm-svn: 212917
* Superficial fix for PR20218: binding a function lvalue to a const reference toRichard Smith2014-07-142-17/+50
| | | | | | | | | | | | | a function pointer is neither better nor worse than binding a function lvalue to a function rvalue reference. Don't get confused and think that both bindings are binding to a function lvalue (which would make the lvalue form win); the const reference is binding to an rvalue. The "real" bug in PR20218 is still present: we're getting the wrong answer from template argument deduction, and that's what leads us to this weird overload set. llvm-svn: 212916
* [DAGCombiner] Fix a crash caused by a missing check for legal type when ↵Andrea Di Biagio2014-07-132-1/+31
| | | | | | | | | | | | | | | | | | | | trying to fold shuffles. Verify that DAGCombiner does not crash when trying to fold a pair of shuffles according to rule (added at r212539): (shuffle (shuffle A, Undef, M0), Undef, M1) -> (shuffle A, Undef, M2) The DAGCombiner avoids folding shuffles if the resulting shuffle dag node is not legal for the target. That means, the resulting shuffle must have legal type and legal mask. Before, the DAGCombiner only called method 'TargetLowering::isShuffleMaskLegal' to check if it was "safe" to fold according to the above-mentioned rule. However, this caused a crash in the x86 backend since method 'isShuffleMaskLegal' always expects to be called on a legal vector type. llvm-svn: 212915
OpenPOWER on IntegriCloud