summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* AVX: fixed a bug in LowerVECTOR_SHUFFLEElena Demikhovsky2014-02-112-1/+14
| | | | llvm-svn: 201140
* clang-format: Support lambdas with namespace-qualified return types.Daniel Jasper2014-02-112-0/+2
| | | | | | | E.g.: Foo([]()->std::vector<int> { return { 2 }; }()); llvm-svn: 201139
* clang-format: Fix alignment of comments inside statements.Daniel Jasper2014-02-113-25/+35
| | | | | | | | | | | | | | Before: auto result = SomeObject // Calling someFunction on SomeObject .someFunction(); After: auto result = SomeObject // Calling someFunction on SomeObject .someFunction(); llvm-svn: 201138
* AAPCS: Do not split structs after CPRC allocated on stackOliver Stannard2014-02-112-43/+140
| | | | | | | | | | According to the AAPCS, we can split structs between GPRs and the stack, except for when an argument has already been allocated on the stack. This can occur when a large number of floating-point arguments fill up the VFP registers, and are alllocated on the stack before the general-purpose argument registers are full. llvm-svn: 201137
* Remove TimeValue::toPosixTime() -- it is buggy, semantics are unclear, and itsDmitri Gribenko2014-02-113-14/+5
| | | | | | only current user should be using toEpochTime() instead. llvm-svn: 201136
* Fix self-hosted -Werror build: delete comma at the end of enumerator listAlexey Samsonov2014-02-111-1/+1
| | | | llvm-svn: 201135
* AVX-512: Optimized BUILD_VECTOR pattern; Elena Demikhovsky2014-02-114-5/+23
| | | | | | fixed encoding of VEXTRACTPS instruction. llvm-svn: 201134
* [Mips] Use the 'CHECK-NEXT' where we need to check a test output exactlySimon Atanasyan2014-02-117-94/+95
| | | | | | line by line. llvm-svn: 201133
* [CodeGenPrepare] Test case for the promotions that bypass theQuentin Colombet2014-02-111-0/+49
| | | | | | | | | profitability check due to some other checks in the addressing mode matcher. I.e., test case for commit r201121. <rdar://problem/16020230> llvm-svn: 201132
* [Mips] Simplify the code. Replace redundant 'switch' operator by the single ↵Simon Atanasyan2014-02-111-7/+1
| | | | | | 'if' one. llvm-svn: 201131
* Fix PCH deserialization bug with local static symbols being treated as local ↵Ted Kremenek2014-02-113-1/+28
| | | | | | | | | | | | | extern. This triggered a miscompilation of code using Boost's function_template.hpp when it was included inside a PCH file. A local static within that header would be treated as local extern, resulting in the wrong mangling. This only occurred during PCH deserialization. Fixes <rdar://problem/15975816> and <rdar://problem/15926311>. llvm-svn: 201130
* [Mips] Handle R_MIPS_COPY relocation.Simon Atanasyan2014-02-115-0/+99
| | | | llvm-svn: 201129
* [Mips] Add "data" symbols to the test input file. No functional changes.Simon Atanasyan2014-02-111-20/+6
| | | | llvm-svn: 201128
* In RuntimeDyldImpl::emitSection, make Allocate (section size to be allocated) aLang Hames2014-02-111-1/+1
| | | | | | | | | | | | | uintptr_t. An unsigned could overflow for large sections. No test case - anything big enough to overflow an unsigned is going to take an appreciable time to zero when the test passes. The choice of uintptr_t was made to match the RTDyldMemoryManager APIs, but these should probably be hardcoded to uint64_ts: It is legitimate to JIT for 64-bit targets from a 32-bit host/compiler. llvm-svn: 201127
* Changed attributes of all gather intrinsics from IntrReadMem to ↵Craig Topper2014-02-111-25/+25
| | | | | | IntrReadArgMem as they access only memory based on argument. Patch by Robert Khasanov. llvm-svn: 201126
* Using the helper API for random number generation.Aaron Ballman2014-02-113-14/+2
| | | | llvm-svn: 201125
* Hopefully fixing the MinGW 32 build, which was broken by r200767. Not using ↵Aaron Ballman2014-02-112-9/+11
| | | | | | rand_s() since MinGW does not have an implementation for it, but instead using the underlying CryptGenRandom APIs. llvm-svn: 201124
* [analyzer] Inline C++ operator new when c++-inline-allocators is turned on.Jordan Rose2014-02-118-6/+67
| | | | | | | | | This will let us stage in the modeling of operator new. The -analyzer-config opton 'c++-inline-allocators' is currently off by default. Patch by Karthik Bhat! llvm-svn: 201122
* [CodeGenPrepare] Undo changes that happened for the profitability check.Quentin Colombet2014-02-111-0/+7
| | | | | | | | | | | | | | | | | The addressing mode matcher checks at some point the profitability of folding an instruction into the addressing mode. When the instruction to be folded has several uses, it checks that the instruction can be folded in each use. To do so, it creates a new matcher for each use and check if the instruction is in the list of the matched instructions of this new matcher. The new matchers may promote some instructions and this has to be undone to keep the state of the original matcher consistent. A test case will follow. <rdar://problem/16020230> llvm-svn: 201121
* [stackprotector] Add command line option -fstack-protector-strongJosh Magee2014-02-119-10/+36
| | | | | | | | | | This option has the following effects: * It adds the sspstrong IR attribute to each function within the CU. * It defines the macro __SSP_STRONG__ with the value of 2. Differential Revision: http://llvm-reviews.chandlerc.com/D2717 llvm-svn: 201120
* DebugInfo: Use existing symbol rather than creating it again.David Blaikie2014-02-111-1/+1
| | | | llvm-svn: 201119
* Change RNBRemote::HandlePacket_m() to store the packet on the heapJason Molenda2014-02-111-1/+6
| | | | | | instead of on the stack. Handles larger packet read requests better. llvm-svn: 201118
* Adjust the calls to __introspection_dispatch_thread_get_item_info toJason Molenda2014-02-113-9/+24
| | | | | | | | use a system-wide unique thread ID instead of a pthread_t to identify the thread we want debug info for. Also, free some more memory regions that needed to be freed. llvm-svn: 201117
* Move the *PassPrinter into their own module.Eli Bendersky2014-02-104-206/+315
| | | | | | | | | | These are self-contained in functionality so it makes sense to separate them, as opt.cpp has grown quite big already. Following Eric's suggestions, if this code is ever deemed useful outside of tools/opt, it will make sense to move it to one of the LLVM libraries like IR. llvm-svn: 201116
* [Stackmaps] Cleanup code. No functional change intended.Juergen Ributzka2014-02-102-26/+17
| | | | llvm-svn: 201115
* LTO API: add lto_module_create_from_memory_with_path.Manman Ren2014-02-105-9/+34
| | | | | | | | | | | | | This function adds an extra path argument to lto_module_create_from_memory. The path argument will be passed to makeBuffer to make sure the MemoryBuffer has a name and the created module has a module identifier. This is mainly for emitting warning messages from the linker. When we emit warning message on a module, we can use the module identifier. rdar://15985737 llvm-svn: 201114
* Mark the methods in the Mangler const.Rafael Espindola2014-02-102-11/+13
| | | | | | | | | A const ObjectFile needs to be able to provide its name. For an IRObjectFile, that means being able to call the mangler. Since each IRObjectFile can have a different mangling, it is natural for them to contain a Mangler which is therefore also const. llvm-svn: 201113
* [AArch64] Fixed vget/vset_lane_f16 implementationAna Pazos2014-02-102-39/+99
| | | | | | | | Replaced cast and vreinterepret operations with code to reinterpret bitwise the types float16_t and int16_t. llvm-svn: 201112
* cmake: Do not export targets when installing toolchain onlyReid Kleckner2014-02-101-2/+2
| | | | | | Patch by Brad King! llvm-svn: 201111
* Fix an old FIXME. LDPO_PIE is available since 2.23, realeased 2012-10-22.Rafael Espindola2014-02-101-2/+1
| | | | llvm-svn: 201110
* Update for llvm api change.Rafael Espindola2014-02-102-6/+6
| | | | llvm-svn: 201109
* Change the begin and end methods in ObjectFile to match the style guide.Rafael Espindola2014-02-1024-184/+184
| | | | llvm-svn: 201108
* R600: Implement isTruncateFreeMatt Arsenault2014-02-102-0/+6
| | | | | | | Truncation is just accessing a subregister for any multiple of the register size, so it's free. llvm-svn: 201107
* Tests for DR351-370, plus update DR status page to match the latest core ↵Richard Smith2014-02-102-102/+612
| | | | | | issue list. llvm-svn: 201106
* MS ABI: Add support for #pragma pointers_to_membersDavid Majnemer2014-02-1019-23/+250
| | | | | | | | | | | | | | | | | | | Introduce a notion of a 'current representation method' for pointers-to-members. When starting out, this is set to 'best case' (representation method is chosen by examining the class, selecting the smallest representation that would work given the class definition or lack thereof). This pragma allows the translation unit to dictate exactly what representation to use, similar to how the inheritance model keywords operate. N.B. PCH support is forthcoming. Differential Revision: http://llvm-reviews.chandlerc.com/D2723 llvm-svn: 201105
* [LPM] A terribly simple fix to a terribly complex bug: PR18773.Chandler Carruth2014-02-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The crux of the issue is that LCSSA doesn't preserve stateful alias analyses. Before r200067, LICM didn't cause LCSSA to run in the LTO pass manager, where LICM runs essentially without any of the other loop passes. As a consequence the globalmodref-aa pass run before that loop pass manager was able to survive the loop pass manager and be used by DSE to eliminate stores in the function called from the loop body in Adobe-C++/loop_unroll (and similar patterns in other benchmarks). When LICM was taught to preserve LCSSA it had to require it as well. This caused it to be run in the loop pass manager and because it did not preserve AA, the stateful AA was lost. Most of LLVM's AA isn't stateful and so this didn't manifest in most cases. Also, in most cases LCSSA was already running, and so there was no interesting change. The real kicker is that LCSSA by its definition (injecting PHI nodes only) trivially preserves AA! All we need to do is mark it, and then everything goes back to working as intended. It probably was blocking some other weird cases of stateful AA but the only one I have is a 1000-line IR test case from loop_unroll, so I don't really have a good test case here. Hopefully this fixes the regressions on performance that have been seen since that revision. llvm-svn: 201104
* <rdar://problem/15996848>Han Ming Ong2014-02-103-4/+49
| | | | | | | Made sure we pass along the file action paths for stdin/stdout/stderr to the XPC service. [Reviewed by Greg Clayton] llvm-svn: 201103
* Basic: Clean up malformed pragma diagnosticsDavid Majnemer2014-02-107-50/+45
| | | | | | | Create a new diagnostic, -Wignored-pragmas and use it to handle any case where a pragma would have a side effect but is ignored. llvm-svn: 201102
* Fix for PR17606 - result_of (and INVOKE) works incorrectly for member ↵Marshall Clow2014-02-103-3/+71
| | | | | | function pointers with ref qualifiers. Also a drive-by fix for common_type in C++03 mode. Thanks to Michel Morin for the bug report and the proposed fix. llvm-svn: 201101
* PR18777: This PR is already fixed; add regtest.Richard Smith2014-02-101-0/+5
| | | | llvm-svn: 201100
* Sema: Remove useless MSStructPragmaOn update in Sema::~SemaDavid Majnemer2014-02-101-1/+0
| | | | | | No functional change, this code was just superfluous. llvm-svn: 201099
* Copy the ThreadLocalMode in GlobalVariable::copyAttributesFromHans Wennborg2014-02-101-1/+1
| | | | | | This fixes the oversight from r159077. llvm-svn: 201098
* R600/SI: Initialize M0 and emit S_WQM_B64 whenever DS instructions are usedTom Stellard2014-02-105-12/+45
| | | | | | | | | | | DS instructions that access local memory can only uses addresses that are less than or equal to the value of M0. When M0 is uninitialized, then we experience undefined behavior. This patch also changes the behavior to emit S_WQM_B64 on pixel shaders no matter what kind of DS instruction is used. llvm-svn: 201097
* R600/SI: Only use S_WQM_B64 in pixel shadersTom Stellard2014-02-101-1/+1
| | | | | | | | This doesn't change any functionality, since we only have two shader types (compute and pixel) that use local memory. We're just changing the logic to match the documentation. llvm-svn: 201096
* Remove some prototype code accidentally committed in r201043David Blaikie2014-02-102-14/+0
| | | | | | Thanks to Chandler for the catch. llvm-svn: 201095
* ARM: move vshll NEON implementation to common codeTim Northover2014-02-101-13/+10
| | | | | | | Now that both ARM backends use the same implementation for vshll operations, the code can be shared. This is also a necessary LLVM/Clang interface update. llvm-svn: 201094
* ARM: use natural LLVM IR for vshll instructionsTim Northover2014-02-105-71/+93
| | | | | | | | Similarly to the vshrn instructions, these are simple zext/sext + trunc operations. Using normal LLVM IR should allow for better code, and more sharing with the AArch64 backend. llvm-svn: 201093
* Host: unconstify editline paramtersSaleem Abdulrasool2014-02-101-4/+8
| | | | | | | | | | | | | | Although the interface to el_push should be a constant parameter (as it is on Darwin), certain Linux distributions currently ship a header which does not provide proper const correctness. This causes compilation failures on Linux. Strip the constness on the parameter, which whilst incorrect, is mostly harmless. The parameter will not be changed by the interface and so it is acceptable to do this. When distributions have updated to a more correct declaration, it would be nice to revert this change. Addresses PR18784. llvm-svn: 201092
* [AArch64] Handle aliases of conditional branches without b.pred form.Chad Rosier2014-02-102-4/+77
| | | | llvm-svn: 201091
* ARM: r12 is callee-saved for interrupt handlersOliver Stannard2014-02-102-12/+13
| | | | | | | For A- and R-class processors, r12 is not normally callee-saved, but is for interrupt handlers. See AAPCS, 5.3.1.1, "Use of IP by the linker". llvm-svn: 201089
OpenPOWER on IntegriCloud