summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [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
* MC: make MCWin64EHInstruction a POD-like structSaleem Abdulrasool2014-07-132-62/+57
| | | | | | | | | | | | | | | | This is the first of a number of changes designed to generalise MCWin64EHInstruction to support different target architectures. An ordered set (vector) of these instructions is saved per frame to permit the emission of information for Windows NT style unwinding. The only bit of information which is actually target specific here is the Opcode for the unwinding bytecode. The remainder of the information is simply generic information that is relevant to the Windows NT unwinding model. Remove the accessors for the fields, making them const and public instead. Sink the knowledge of the alias'ed name into the single source and sink a single-use check method into the use. llvm-svn: 212914
* MC: make helper function be more const-correctSaleem Abdulrasool2014-07-131-10/+7
| | | | | | | Introduce const-ness on parameters, they are used as read-only and should not be modified. NFC. llvm-svn: 212913
* MC: make DWARF and Windows unwinding handling more similarSaleem Abdulrasool2014-07-136-121/+112
| | | | | | | | Rename member variables and functions for the MCStreamer for DWARF-like unwinding management. Rename the Windows ones as well and make the naming and handling similar across the two. No functional change intended. llvm-svn: 212912
* Remove trailing spacesPavel Chupin2014-07-131-6/+6
| | | | llvm-svn: 212911
* Add forgotten `break` statement.Simon Atanasyan2014-07-131-0/+1
| | | | llvm-svn: 212910
* Add test cases for AArch64 hints codegenYi Kong2014-07-131-0/+8
| | | | llvm-svn: 212909
* [Mips] Support SHT_MIPS_ABIFLAGS section type flag in the llvm-readobj,Simon Atanasyan2014-07-1316-11/+66
| | | | | | obj2yaml and yaml2obj tools. llvm-svn: 212908
* [CMake] Enable loadable modules, aka plugins, with BUILD_SHARED_LIBS on cygming.NAKAMURA Takumi2014-07-131-2/+5
| | | | | | Loadable modules could be enabled without BUILD_SHARED_LIBS with tweaks in future. llvm-svn: 212907
* [CMake] Give explicit dependencies to a couple of modules, ↵NAKAMURA Takumi2014-07-132-0/+18
| | | | | | PrintFunctionNames and SampleAnalyzerPlugin, for Win32.DLL. llvm-svn: 212906
* PrintFunctionNames/CMakeLists.txt: Fix a comment.NAKAMURA Takumi2014-07-131-1/+1
| | | | llvm-svn: 212905
* [CMake] Add LLVM_LINK_COMPONENTS to loadable modules, LLVMHello and ↵NAKAMURA Takumi2014-07-132-0/+8
| | | | | | BugpointPasses, on Win32. llvm-svn: 212904
* [CMake] Introduce moddir for MODULE -- corresponding to ↵NAKAMURA Takumi2014-07-131-3/+18
| | | | | | | | | | LIBRARY_OUTPUT_DIRECTORY. On Win32.DLL, it points not lib but bin. LIBRARY_OUTPUT_DIRECTORY affects add_library(MODULE), especially Win32.DLL. llvm-svn: 212903
* bugpoint/ToolRunner.cpp: ProcessFailure(): Close ErrorFD immediately, or it ↵NAKAMURA Takumi2014-07-131-0/+8
| | | | | | | couldn't be reopened on Win32. FIXME: We may have an option in openFileForWrite(), not to use ResultFD but to close it. llvm-svn: 212902
* MS ABI: Stick internal vftables in a comdat if they have RTTI dataDavid Majnemer2014-07-132-7/+6
| | | | | | | | | | | | | | | Previously, we would have a private backing variable and an internal alias pointing at it. However, -fdata-sections only fires if a global variable has non-private linkage. This means that an unreferenced vftable wouldn't get discarded, bloating the object file. Instead, stick the backing variable in a comdat even if the alias has internal linkage. This will allow the linker to drop the vftable if it is unused. llvm-svn: 212901
* IR: Allow comdats to be applied to globals with internal linkageDavid Majnemer2014-07-133-5/+7
| | | | | | | | | | Our verifier check for checking if a global has local linkage was too strict. Forbid private linkage but permit local linkage. Object file formats permit this and forbidding it prevents elimination of unused, internal, vftables under the MSVC ABI. llvm-svn: 212900
* MC: Let non-temporary COFF aliases be in symtabDavid Majnemer2014-07-133-17/+27
| | | | | | | | | | | | | | MC was aping a binutils bug where aliases would default their linkage to private instead of internal. I've sent a patch to the binutils maintainers and they've recently applied it to the GNU assembler sources. This fixes PR20152. Differential Revision: http://reviews.llvm.org/D4395 llvm-svn: 212899
* Remove unused includeMatt Arsenault2014-07-131-1/+0
| | | | llvm-svn: 212898
* R600: Use range for and fix missing consts.Matt Arsenault2014-07-132-29/+20
| | | | llvm-svn: 212897
* R600: Make ShaderType privateMatt Arsenault2014-07-139-34/+45
| | | | llvm-svn: 212896
* R600: Run more tests with promote alloca disabled.Matt Arsenault2014-07-134-22/+57
| | | | | | | Re-run tests changed in r211110 to test both paths. Also fix broken check line. llvm-svn: 212895
* R600: Run private-memory test with and without alloca promoteMatt Arsenault2014-07-131-24/+33
| | | | | | | The unpromoted path still needs to be tested since we can't always promote to using LDS. llvm-svn: 212894
* R600: Add option to disable promote allocaMatt Arsenault2014-07-134-5/+24
| | | | | | | This can make writing some tests harder, so add a flag to disable it. llvm-svn: 212893
* tests: use a more precise target for testsSaleem Abdulrasool2014-07-121-2/+2
| | | | llvm-svn: 212892
* Headers: add hint intrinsics to arm_acle.hSaleem Abdulrasool2014-07-122-4/+30
| | | | | | | | This adds the ARM ACLE hint intrinsic wrappers to arm_acle.h. These need to be protected with a !defined(_MSC_VER) since MSVC (and thus clang in compatibility mode) provide these wrappers as proper builtin intrinsics. llvm-svn: 212891
* CodeGen: support hint intrinsics from ACLE on AArch64Saleem Abdulrasool2014-07-123-0/+69
| | | | | | | This adds support for the ACLE hint intrinsics on AArch64 similar to ARM. This is required to properly support ACLE on AArch64. llvm-svn: 212890
* Try to fix MSVC warning.Matt Arsenault2014-07-121-0/+8
| | | | llvm-svn: 212889
* Try to fix MSVC buildMatt Arsenault2014-07-121-1/+1
| | | | llvm-svn: 212888
* Improve comments of ARM ACLE header file and testsYi Kong2014-07-122-8/+16
| | | | | | Include section number in ARM ACLE specification for easier navigation. llvm-svn: 212887
* Try to fix MSVC buildMatt Arsenault2014-07-121-1/+1
| | | | llvm-svn: 212886
* Templatify DominanceFrontier.Matt Arsenault2014-07-128-212/+535
| | | | | | Theoretically this should now work for MachineBasicBlocks. llvm-svn: 212885
* Fix lldb-gdbserver build Ed Maste2014-07-121-1/+1
| | | | | | s_listen_thread had the wrong type. llvm-svn: 212884
* AArch64: add support for llvm.aarch64.hint intrinsicSaleem Abdulrasool2014-07-123-11/+89
| | | | | | | | | | | This adds a llvm.aarch64.hint intrinsic to mirror the llvm.arm.hint in order to support the various hint intrinsic functions in the ACLE. Add an optional pattern field that permits the subclass to specify the pattern that matches the selection. The intrinsic pattern is set as mayLoad, mayStore, so overload the value for the definition of the hint instruction. llvm-svn: 212883
* MC: remove use of unnecessary variableSaleem Abdulrasool2014-07-121-41/+27
| | | | | | | | | Due to the fact that the windows unwinding has the concept of chained frames, we maintain a current frame info pointer that is adjusted on any push and pop of a unwinding context. This just removes an unnecessary variable that was used to mirror the DWARF unwinding code. llvm-svn: 212882
* MC: rename MCW64UnwindInfo to MCWinFrameInfoSaleem Abdulrasool2014-07-125-31/+31
| | | | | | | | This structure contains information related to the call frame used to generate unwinding information. Rename this to reflect the future use to represent the shared state between various architectures for WinCFI information. llvm-svn: 212881
OpenPOWER on IntegriCloud