summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [MSan] [MIPS] Adding support for MIPS64 (patch by Mohit Bhakkad).Alexey Samsonov2014-11-1910-12/+49
| | | | | | Reviewed at http://reviews.llvm.org/D5906 llvm-svn: 222388
* Fix bug where a trivial constexpr copy/move operation couldn't copy from anRichard Smith2014-11-193-4/+72
| | | | | | | empty non-constexpr object. Such a copy doesn't break any of the constexpr rules. llvm-svn: 222387
* Try to fix MSVS build after r222384. No intended behavior change.Nico Weber2014-11-191-3/+3
| | | | llvm-svn: 222386
* Fix Use-of-uninitialized-value for adrp_addr and adrp_inst in MachODump.cppKevin Enderby2014-11-191-0/+4
| | | | | | Fixes PR21607 llvm-svn: 222385
* SimplifyCFG: turn recursive GatherConstantCompares into iterativeMehdi Amini2014-11-191-99/+138
| | | | | | A long sequence of || or && could lead to a stack explosion. llvm-svn: 222384
* Change contradictory wording in va_copy test error message.Eric Fiselier2014-11-192-4/+4
| | | | llvm-svn: 222383
* RegisterCoalescer: Improve debug messagesMatthias Braun2014-11-191-6/+8
| | | | | | | | | - Show "Considering..." message after flipping so you actually see the final destination vreg as destination. - Add a message on final join, so you can grep for "Success" messages to obtain a list of which register got merged with which. llvm-svn: 222382
* Add a print and verify pass after the RegisterCoalescerMatthias Braun2014-11-191-0/+1
| | | | llvm-svn: 222381
* MachineVerifier: Report register for bad liverangesMatthias Braun2014-11-191-24/+28
| | | | llvm-svn: 222380
* Introduce register dump helperMatthias Braun2014-11-192-0/+13
| | | | llvm-svn: 222379
* Implement N4280 - 'Non-member size() and more'Marshall Clow2014-11-195-6/+283
| | | | llvm-svn: 222378
* DebugInfo: Don't emit a 'global variable' when a static member declaration ↵David Blaikie2014-11-193-8/+36
| | | | | | | | | is referenced without a definition, just ensure the enclosing class (with the static member declaration) is emitted. Addresses PR21511 by emitting appropriate metadata rather than faux-global definitions for a variable that doesn't have a definition. llvm-svn: 222377
* AliasSet: Simplify mergeSetInDavid Majnemer2014-11-191-4/+3
| | | | | | No functional change intended. llvm-svn: 222376
* [X86] Improved lowering of v4x32 build_vector dag nodes.Andrea Di Biagio2014-11-193-81/+228
| | | | | | | | | | | | | | | | | | This patch improves the lowering of v4f32 and v4i32 build_vector dag nodes that are known to have at least two non-zero elements. With this patch, a build_vector that performs a blend with zero is converted into a shuffle. This is done to let the shuffle legalizer expand the dag node in a optimal way. For example, if we know that a build_vector performs a blend with zero, we can try to lower it as a movq/blend instead of always selecting an insertps. This patch also improves the logic that lowers a build_vector into a insertps with zero masking. See for example the extra test cases added to test sse41.ll. Differential Revision: http://reviews.llvm.org/D6311 llvm-svn: 222375
* [ADT] Fix PR20728 - Incorrect APFloat::fusedMultiplyAdd results for x86_fp80.Lang Hames2014-11-192-12/+36
| | | | | | | | | | | | | | As detailed at http://llvm.org/PR20728, due to an internal overflow in APFloat::multiplySignificand the APFloat::fusedMultiplyAdd method can return incorrect results for x87DoubleExtended (x86_fp80) values. This commonly manifests as incorrect constant folding of libm fmal calls on x86. E.g. fmal(1.0L, 1.0L, 3.0L) == 0.0L (should be 4.0L) This patch fixes PR20728 by adding an extra bit to the significand for intermediate results of APFloat::multiplySignificand, avoiding the overflow. llvm-svn: 222374
* Fix a temporary MDNode leak.Frederic Riss2014-11-191-0/+7
| | | | | | | | | | | | While emitting debug information for function forward decalrations, we create DISubprogram objects that aran't stored in the AllSubprograms list, and thus won't get finalized by the DIBuilder. During the DIBuilder finalize(), the temporary MDNode allocated for the DISubprogram Variables field gets RAUWd with a non temporary DIArray. For the forward declarations, simply delete that temporary node before we delete the parent node, so that it doesn't leak. llvm-svn: 222373
* Add test for denied process attach by pid and fix found bugs in ↵Oleksiy Vyalov2014-11-197-16/+165
| | | | | | | | | | Process/ProcessPOSIX.cpp and FreeBSD/ProcessMonitor. http://reviews.llvm.org/D6240 llvm-svn: 222372
* Driver: correct typoSaleem Abdulrasool2014-11-192-1/+6
| | | | | | Fix a typo in the search path identified by Justin Bogner. llvm-svn: 222371
* Fix broken build after removing StringMap::GetOrCreateValue in favor of ↵Oleksiy Vyalov2014-11-191-3/+3
| | | | | | StringMap::insert. llvm-svn: 222370
* [llvm-readobj][NFC]Colin LeMahieu2014-11-191-1/+2
| | | | | | Appeasing mingw without C++11 std::to_string llvm-svn: 222369
* R600/SI: Make SIInstrInfo::isOperandLegal() more strictTom Stellard2014-11-193-16/+25
| | | | | | | | | | | | A register operand that has a common sub-class with its instruction's defined register class is not always legal. For example, SReg_32 and M0Reg both have a common sub-class, but we can't use an SReg_32 in instructions that expect a M0Reg. This prevents the llvm.SI.sendmsg.ll test from failing when the fold operand pass is added. llvm-svn: 222368
* [mips][micromips] Implement SWM32 and LWM32 instructionsZoran Jovanovic2014-11-1914-30/+355
| | | | | | Differential Revision: http://reviews.llvm.org/D5519 llvm-svn: 222367
* todo: We can support modifiable memory access functionsTobias Grosser2014-11-191-3/+2
| | | | llvm-svn: 222366
* todo: We now have OpenMP support in isl backendTobias Grosser2014-11-191-4/+4
| | | | llvm-svn: 222365
* Vectorize a reduction chain feeding into a 'return' statement.Suyog Sarda2014-11-192-0/+69
| | | | | | | | | e.x return (a[0]+b[0]) + (a[1]+b[1]) Differential Revision: http://reviews.llvm.org/D6227 llvm-svn: 222364
* [clang-tidy] Count errors in ClangTidyDiagnosticConsumerAlexander Kornienko2014-11-192-1/+4
| | | | llvm-svn: 222363
* Change states in the www/todo.html listJohannes Doerfert2014-11-191-7/+12
| | | | llvm-svn: 222362
* Added entries for bugs 2118 and 2306, which were closed in UrbanaMarshall Clow2014-11-191-0/+2
| | | | llvm-svn: 222361
* Simplify the SCEVAffinator [NFC]Johannes Doerfert2014-11-191-7/+2
| | | | llvm-svn: 222360
* Use new Small(Ptr)Set APITobias Grosser2014-11-191-2/+2
| | | | | | This fixes the recent build failures. llvm-svn: 222358
* clang-format: [Java] Ignore C++-specific keywordsDaniel Jasper2014-11-192-0/+11
| | | | | | | | | | | | | | | | | | Before: public void union (Object o); public void struct (Object o); public void delete (Object o); After: public void union(Object o); public void struct(Object o); public void delete(Object o); Patch by Harry Terkelsen, thank you! llvm-svn: 222357
* [mips][microMIPS] Fix opcodes of MFHC1 and MTHC1 instructions.Jozef Kolek2014-11-192-4/+10
| | | | | | Differential Revision: http://reviews.llvm.org/D6169 llvm-svn: 222355
* Fix tail recursion eliminationArnaud A. de Grandmaison2014-11-192-3/+51
| | | | | | | | | | | | | | | | | | | | | | When the BasicBlock containing the return instrution has a PHI with 2 incoming values, FoldReturnIntoUncondBranch will remove the no longer used incoming value and remove the no longer needed phi as well. This leaves us with a BB that no longer has a PHI, but the subsequent call to FoldReturnIntoUncondBranch from FoldReturnAndProcessPred will not remove the return instruction (which still uses the result of the call instruction). This prevents EliminateRecursiveTailCall to remove the value, as it is still being used in a basicblock which has no predecessors. The basicblock can not be erased on the spot, because its iterator is still being used in runTRE. This issue was exposed when removing the threshold on size for lifetime marker insertion for named temporaries in clang. The testcase is a much reduced version of peelOffOuterExpr(const Expr*, const ExplodedNode *) from clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp. llvm-svn: 222354
* [mips][microMIPS] Implement CodeGen support for 16-bit instruction ADDIUR2.Jozef Kolek2014-11-192-0/+13
| | | | | | Differential Revision: http://reviews.llvm.org/D5800 llvm-svn: 222352
* [mips][microMIPS] Implement CodeGen support for ADDIUS5 instruction.Jozef Kolek2014-11-193-3/+35
| | | | | | Differential Revision: http://reviews.llvm.org/D5799 llvm-svn: 222351
* [mips][microMIPS] Add disassembler tests for new microMIPS 32-bitJozef Kolek2014-11-192-0/+42
| | | | | | | | instructions: LWXS, BGEZALS, BLTZALS, BEQZC, BNEZC, JALS and JALRS. http://reviews.llvm.org/D5413 llvm-svn: 222349
* [mips][microMIPS] Implement LWXS instruction.Jozef Kolek2014-11-193-0/+26
| | | | | | Differential Revision: http://reviews.llvm.org/D5407 llvm-svn: 222348
* [mips][microMIPS] Implement SDBBP and RDHWR instructions.Jozef Kolek2014-11-196-4/+61
| | | | | | Differential Revision: http://reviews.llvm.org/D5240 llvm-svn: 222347
* tsan: fix binary names in testsDmitry Vyukov2014-11-192-9/+9
| | | | | | test_output.sh produces source.cc.exe binaries llvm-svn: 222345
* tsan: exclude unsupported test from test_output.sh scriptDmitry Vyukov2014-11-191-0/+2
| | | | llvm-svn: 222344
* tsan: don't add -pie when compiling testsDmitry Vyukov2014-11-191-2/+2
| | | | | | driver should add it as necessary llvm-svn: 222343
* tsan: fix Go buildDmitry Vyukov2014-11-191-0/+1
| | | | llvm-svn: 222342
* Use ninja pools to limit the number of concurrent compile/link jobs.Evgeniy Stepanov2014-11-192-0/+21
| | | | | | | | This change makes use of the new "job pool" capability in cmake 3.0 with ninja generator to allow limiting the number of concurrent jobs of a certain type. llvm-svn: 222341
* [X86][SSE] pslldq/psrldq byte shifts/rotation for SSE2Simon Pilgrim2014-11-197-385/+303
| | | | | | | | | | This patch builds on http://reviews.llvm.org/D5598 to perform byte rotation shuffles (lowerVectorShuffleAsByteRotate) on pre-SSSE3 (palignr) targets - pre-SSSE3 is only enabled on i8 and i16 vector targets where it is a more definite performance gain. I've also added a separate byte shift shuffle (lowerVectorShuffleAsByteShift) that makes use of the ability of the SLLDQ/SRLDQ instructions to implicitly shift in zero bytes to avoid the need to create a zero register if we had used palignr. Differential Revision: http://reviews.llvm.org/D5699 llvm-svn: 222340
* Allow EmitVAArg() to promote types and use this to fix some N32/N64 vararg ↵Daniel Sanders2014-11-193-21/+169
| | | | | | | | | | | | | | | | | | | | | issues for Mips. Summary: With this patch, passing a va_list to another function and reading 10 int's from it works correctly on a big-endian target. Based on a pair of patches by David Chisnall, one of which I've reworked for the current trunk. Reviewers: theraven, atanasyan Reviewed By: theraven, atanasyan Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6248 llvm-svn: 222339
* AliasSetTracker: UnknownInsts should contribute to the refcountDavid Majnemer2014-11-193-16/+70
| | | | | | | | | | | | | | | | | | | AliasSetTracker::addUnknown may create an AliasSet devoid of pointers just to contain an instruction if no suitable AliasSet already exists. It will then AliasSet::addUnknownInst and we will be done. However, it's possible for addUnknown to choose an existing AliasSet to addUnknownInst. If this were to occur, we are in a bit of a pickle: removing pointers from the AliasSet can cause the entire AliasSet to become destroyed, taking our unknown instructions out with them. Instead, keep track whether or not our AliasSet has any unknown instructions. This fixes PR21582. llvm-svn: 222338
* Add missing headerDavid Blaikie2014-11-191-0/+1
| | | | llvm-svn: 222337
* Update for LLVM API change to make Small(Ptr)Set::insert return ↵David Blaikie2014-11-191-1/+1
| | | | | | pair<iterator, bool> as per the C++ standard's associative container concept. llvm-svn: 222336
* Update for LLVM API change to make Small(Ptr)Set::insert return ↵David Blaikie2014-11-1937-125/+139
| | | | | | pair<iterator, bool> as per the C++ standard's associative container concept. llvm-svn: 222335
* Update SetVector to rely on the underlying set's insert to return a ↵David Blaikie2014-11-19107-228/+255
| | | | | | | | | | | | | pair<iterator, bool> This is to be consistent with StringSet and ultimately with the standard library's associative container insert function. This lead to updating SmallSet::insert to return pair<iterator, bool>, and then to update SmallPtrSet::insert to return pair<iterator, bool>, and then to update all the existing users of those functions... llvm-svn: 222334
OpenPOWER on IntegriCloud