summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [libc++] Fix PR20084 - std::is_function<void() const> failed.Eric Fiselier2015-02-182-15/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch introduces some black magic to detect const and volatile qualified function types such as `void () const`. The patch works in the following way: We first rule out any type that satisfies on of the following. These restrictions are important so that the test below works properly. * `is_class<_Tp>::value` * `is_union<_Tp>::value` * `is_void<_Tp>::value` * `is_reference<_Tp>::value` * `__is_nullptr_t<_Tp>::value` If none of the above is true we perform overload resolution on `__source<_Tp>(0)` to determine the return type. * If `_Tp&` is well-formed we select `_Tp& __source(int)`. `_Tp&` is only ill formed for cv void types and cv/ref qualified function types. * Otherwise we select `__dummy_type __source(...)`. Since we know `_Tp` cannot be void then it must be a function type. let `R` be the returned from `__source<_Tp>(0)`. We perform overload resolution on `__test<_Tp>(R)`. * If `R` is `__dummy_type` we call `true_type __test(__dummy_type)`. * if `R` is `_Tp&` and `_Tp&` decays to `_Tp*` we call `true_type __test(_Tp*)`. Only references to function types decay to a pointer of the same type. * In all other cases we call `false_type __test(...)`. `__source<_Tp>(0)` will try and form `_Tp&` in the return type. if `_Tp&` is not well formed the return type of `__source<_Tp>(0)` will be dummy type. `_Tp&` is only ill-formed for cv/ref qualified function types (and void which is dealt with elsewhere). This fixes PR20084 - http://llvm.org/bugs/show_bug.cgi?id=20084 Reviewers: rsmith, K-ballo, mclow.lists Reviewed By: mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D7573 llvm-svn: 229696
* [mips] Add backend support for Mips32r[35] and Mips64r[35].Daniel Sanders2015-02-1862-115/+4892
| | | | | | | | | | | | | | | | | Summary: These ISA's didn't add any instructions so they are almost identical to Mips32r2 and Mips64r2. Even the ELF e_flags are the same, However the ISA revision in .MIPS.abiflags is 3 or 5 respectively instead of 2. Reviewers: vmedic Reviewed By: vmedic Subscribers: tomatabacu, llvm-commits, atanasyan Differential Revision: http://reviews.llvm.org/D7381 llvm-svn: 229695
* This patch adds the VSX logical instructions introduced in the Power ISA ↵Kit Barton2015-02-186-3/+95
| | | | | | | | | | 2.07. It also removes the added complexity that favors VMX versions of the three instructions. Phabricator review: http://reviews.llvm.org/D7616 Commiting on Nemanja's behalf. llvm-svn: 229694
* Added support for extracting headers from module maps as a source for the ↵John Thompson2015-02-186-17/+325
| | | | | | header list. llvm-svn: 229692
* Add missing exports file and remove unused onesTamas Berghammer2015-02-182-0/+0
| | | | | | | | These files required by the excode project Patch from: flackr <flackr@google.com> llvm-svn: 229691
* Temporary hack to avoid false errors. Real fix comming.John Thompson2015-02-181-0/+3
| | | | llvm-svn: 229690
* R600/SI: Don't set isCodeGenOnly = 1 on all instructionsTom Stellard2015-02-184-5/+19
| | | | | | | We only need to set this on pseudo instructions which won't be used by the assembler. llvm-svn: 229689
* R600/SI: Add missing VOP1 instructionsTom Stellard2015-02-182-5/+18
| | | | llvm-svn: 229688
* R600/SI: Add missing VOP2 instructionsTom Stellard2015-02-181-2/+9
| | | | llvm-svn: 229687
* R600/SI: Add definition for S_CBRANCH_G_FORKTom Stellard2015-02-182-1/+13
| | | | llvm-svn: 229686
* R600/SI: Add missing SOP1 instructionsTom Stellard2015-02-182-12/+27
| | | | llvm-svn: 229685
* R600/SI: Refactor SOP2 definitionsTom Stellard2015-02-181-25/+17
| | | | llvm-svn: 229684
* Merge lldb-platform and lldb-gdbserver into a single binaryTamas Berghammer2015-02-1813-526/+150
| | | | | | | | | | | | | This commit merges lldb-platform and lldb-gdbserver into a single binary of the same size as each of the previous individual binaries. Execution mode is controlled by the first argument being either platform or gdbserver. Patch from: flackr <flackr@google.com> Differential revision: http://reviews.llvm.org/D7545 llvm-svn: 229683
* Fix make_symlink in case when symlink already exists (after r229517)Ilia K2015-02-181-0/+2
| | | | llvm-svn: 229682
* Fix line crossing 80 column border.Hafiz Abid Qadeer2015-02-181-1/+1
| | | | llvm-svn: 229681
* Change representation of member function pointers for MIPS targetsZoran Jovanovic2015-02-187-1/+22
| | | | | | Differential Revision: http://reviews.llvm.org/D7148 llvm-svn: 229680
* [ASan/Win] Speculative fix to make the sed command line work with all sed ↵Timur Iskhodzhanov2015-02-181-1/+3
| | | | | | implementations llvm-svn: 229679
* tsan: fix signal handling during stop-the-worldDmitry Vyukov2015-02-182-50/+85
| | | | | | | | | | Long story short: stop-the-world briefly resets SIGSEGV handler to SIG_DFL. This breaks programs that handle and continue after SIGSEGV (namely JVM). See the test and comments for details. http://reviews.llvm.org/D7722 llvm-svn: 229678
* Updated file comment on modularize usage, as it was out-of-date.John Thompson2015-02-181-3/+23
| | | | llvm-svn: 229677
* Fix test/CodeGen/atomic_ops.c failure on clang-cmake-mips builder (and others).Daniel Sanders2015-02-181-1/+2
| | | | | | | | | Not all targets generate 'store atomic' instructions for '_Atomic(_Complex int)'. Some targets use the __atomic_store builtin instead. This commit makes the test accept either one. llvm-svn: 229676
* [mips] Avoid redundant sign extension of the result of binary bitwise ↵Vasileios Kalintiris2015-02-184-13/+11
| | | | | | | | | | | | instructions. Reviewers: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7581 llvm-svn: 229675
* Fix typo in make_symlink after r229517. It fixes symlinks on a UNIX style ↵Ilia K2015-02-181-1/+0
| | | | | | platform. llvm-svn: 229674
* Prevent use after free caused by accessing a member into a dense set.Daniel Jasper2015-02-181-1/+2
| | | | | | | | The member gets invalidated as elements are added to the dense set. Directly access the underlying pointer instead. Not sure how to create a test case for this :-(. Maybe Richard can help. llvm-svn: 229673
* X86: Use bitset to manage a bag of bits. NFC.Benjamin Kramer2015-02-181-7/+3
| | | | | | | Doesn't matter in terms of memory usage or perf here, but it's a neat simplification. llvm-svn: 229672
* [mips] [IAS] Fix using .cpsetup with local labels (PR22518).Toma Tabacu2015-02-184-9/+59
| | | | | | | | | | | | | | | | | Summary: Parse for an MCExpr instead of an Identifier and use the symbol for relocations, not just the symbol's name. This fixes errors when using local labels in .cpsetup (PR22518). Reviewers: dsanders Reviewed By: dsanders Subscribers: seanbruno, emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D7697 llvm-svn: 229671
* [x86] Tighten the assertions to document that canonicalization hasChandler Carruth2015-02-181-4/+5
| | | | | | | actually removed all but a *very* small number of choices for v2i64. Also remove dead code handling cases that simply cannot arise. llvm-svn: 229670
* [x86] Switch an if which is trivially true to an assert. NFCChandler Carruth2015-02-181-14/+14
| | | | llvm-svn: 229669
* [x86] Remove some more 'bit' nomenclature from the generic shiftChandler Carruth2015-02-181-3/+3
| | | | | | lowering. llvm-svn: 229668
* [MSan][MIPS] VarArgHelper for MIPS64Mohit K. Bhakkad2015-02-181-0/+104
| | | | | | | | | | Reviewers: Reviewers: eugenis, kcc, samsonov, petarj Subscribers: dsanders, sagar, llvm-commits Differential Revision: http://reviews.llvm.org/D7182 llvm-svn: 229667
* Remove alias template from GDBRemoteCommunicationServerCommonTamas Berghammer2015-02-181-5/+2
| | | | | | | It is required because MSVC 2013 doesn't generate correct code for template aliases. llvm-svn: 229666
* Enable ASAN build and test on AArch64Renato Golin2015-02-181-1/+1
| | | | llvm-svn: 229665
* Fix some warnings in MSVC build.Hafiz Abid Qadeer2015-02-181-3/+2
| | | | | | | | | | Platform.h was causing soem warning due to multiple defined maros. It already has a define that excludes the singal.h but that was not being used at correct place. It has been fixed now. Tested by building on Windows(MSVC) and Linux(gcc). llvm-svn: 229664
* Fix a typo.Hafiz Abid Qadeer2015-02-181-1/+1
| | | | llvm-svn: 229663
* [x86] Fold together the two shift lowering strategies. They were doingChandler Carruth2015-02-181-150/+68
| | | | | | | | | quite literally the same work, we just need to special case the >64-bit element shift code emission to emit the byte shift instructions and offsets. This also makes reasoning about each of the vector lowering strategies easier as we don't have to remember to use both forms. llvm-svn: 229662
* [ARM] Add missing M/R class CPUsBradley Smith2015-02-185-13/+41
| | | | | | | | | | | | Add some of the missing M and R class Cortex CPUs, namely: Cortex-M0+ (called Cortex-M0plus for GCC compatibility) Cortex-M1 SC000 SC300 Cortex-R5 llvm-svn: 229661
* [ARM] Add missing M/R class CPUsBradley Smith2015-02-182-0/+186
| | | | | | | | | | | | Add some of the missing M and R class Cortex CPUs, namely: Cortex-M0+ (called Cortex-M0plus for GCC compatibility) Cortex-M1 SC000 SC300 Cortex-R5 llvm-svn: 229660
* Fixes two issue in SimplifyDemandedBits of sext_in_reg:Michael Kuperstein2015-02-183-25/+28
| | | | | | | | | | | 1) We should not try to simplify if the sext has multiple uses 2) There is no need to simplify is the source value is already sign-extended. Patch by Gil Rapaport <gil.rapaport@intel.com> Differential Revision: http://reviews.llvm.org/D6949 llvm-svn: 229659
* [SystemZ] Clean up warningUlrich Weigand2015-02-181-4/+1
| | | | | | | | | | Removed (unreachable) default case in switch to clean up warning: lib/Target/SystemZ/SystemZISelLowering.cpp:1974:5: error: default label in switch which covers all enumeration values [-Werror,-Wcovered-switch-default] llvm-svn: 229658
* tsan: add -Wno-maybe-uninitialized to mingw gcc build flagsDmitry Vyukov2015-02-182-2/+2
| | | | | | | As per discussion with David Blaikie here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150216/260289.html llvm-svn: 229657
* [MSan][MIPS] Fix for some failing tests on MIPS64Mohit K. Bhakkad2015-02-189-12/+55
| | | | | | | | | | | | | | Enabling internal ptrace for mips, which fixes some ptrace related tests. Along with this fixing some other failures. Reviewers: Reviewers: eugenis, kcc, samsonov Subscribers: dsanders, sagar, lldb-commits Differential Revision: http://reviews.llvm.org/D7332 llvm-svn: 229656
* [x86] Refactor the bit shift code the same as I just did the byte shiftChandler Carruth2015-02-182-24/+36
| | | | | | | | | | | | | code. While this didn't have the miscompile (it used MatchLeft consistently) it missed some cases where it could use right shifts. I've added a test case Craig Topper came up with to exercise the right shift matching. This code is really identical between the two. I'm going to merge them next so that we don't keep two copies of all of this logic. llvm-svn: 229655
* [SystemZ] Support all TLS access models - CodeGen partUlrich Weigand2015-02-1821-19/+482
| | | | | | | | | | | | | | | | | | | | | | The current SystemZ back-end only supports the local-exec TLS access model. This patch adds all required CodeGen support for the other TLS models, which means in particular: - Expand initial-exec TLS accesses by loading TLS offsets from the GOT using @indntpoff relocations. - Expand general-dynamic and local-dynamic accesses by generating the appropriate calls to __tls_get_offset. Note that this routine has a non-standard ABI and requires loading the GOT pointer into %r12, so the patch also adds support for the GLOBAL_OFFSET_TABLE ISD node. - Add a new platform-specific optimization pass to remove redundant __tls_get_offset calls in the local-dynamic model (modeled after the corresponding X86 pass). - Add test cases verifying all access models and optimizations. llvm-svn: 229654
* Testing commit accessIgor Laevsky2015-02-181-0/+1
| | | | llvm-svn: 229653
* [SystemZ] Support all TLS access models - MC partUlrich Weigand2015-02-1810-21/+344
| | | | | | | | | | | | | | | | | | | | | | | The current SystemZ back-end only supports the local-exec TLS access model. This patch adds all required MC support for the other TLS models, which means in particular: - Support additional relocation types for Initial-exec model: R_390_TLS_IEENT Local-dynamic-model: R_390_TLS_LDO32, R_390_TLS_LDO64, R_390_TLS_LDM32, R_390_TLS_LDM64, R_390_TLS_LDCALL General-dynamic model: R_390_TLS_GD32, R_390_TLS_GD64, R_390_TLS_GDCALL - Support assembler syntax to generate additional relocations for use with __tls_get_offset calls: :tls_gdcall: :tls_ldcall: The patch also adds a new test to verify fixups and relocations, and removes the (already unused) FK_390_PLT16DBL/FK_390_PLT32DBL fixup kinds. llvm-svn: 229652
* Reformat.NAKAMURA Takumi2015-02-184-103/+91
| | | | llvm-svn: 229651
* Revert r229622: "[LoopAccesses] Make VectorizerParams global" and others. ↵NAKAMURA Takumi2015-02-187-570/+169
| | | | | | | | | | | | | | | | | | r229622 brought cyclic dependencies between Analysis and Vector. r229622: "[LoopAccesses] Make VectorizerParams global" r229623: "[LoopAccesses] Stash the report from the analysis rather than emitting it" r229624: "[LoopAccesses] Cache the result of canVectorizeMemory" r229626: "[LoopAccesses] Create the analysis pass" r229628: "[LoopAccesses] Change debug messages from LV to LAA" r229630: "[LoopAccesses] Add canAnalyzeLoop" r229631: "[LoopAccesses] Add missing const to APIs in VectorizationReport" r229632: "[LoopAccesses] Split out LoopAccessReport from VectorizerReport" r229633: "[LoopAccesses] Add -analyze support" r229634: "[LoopAccesses] Change LAA:getInfo to return a constant reference" r229638: "Analysis: fix buildbots" llvm-svn: 229650
* NFC: Use range-based for loops and more consistent naming.Daniel Jasper2015-02-181-19/+15
| | | | | | | | | No functional changes intended. (I plan on doing some modifications to this function and would like to have as few unrelated changes as possible in the patch) llvm-svn: 229649
* Remove experimental options to control machine block placement.Daniel Jasper2015-02-182-147/+20
| | | | | | | This reverts r226034. Benchmarking with those flags has not revealed anything interesting. llvm-svn: 229648
* Minor fix after 229495.Elena Demikhovsky2015-02-181-12/+4
| | | | | | Removed metadata and function attributes from the test. llvm-svn: 229647
* Address post commit review on r229600.Sanjoy Das2015-02-181-2/+2
| | | | llvm-svn: 229646
OpenPOWER on IntegriCloud