summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Clarify the description of the noalias attributeHal Finkel2014-11-211-13/+16
| | | | | | | | | | | | | | | | | | | | | | The previous description of the noalias attribute did not accurately specify the implemented semantics, and the terminology used differed unnecessarily from that used by the C specification to define the semantics of restrict. For the argument attribute, the semantics can be precisely specified in terms of objects accessed through pointers based on the arguments, and this is now what is done. Saying that the semantics are 'slightly weaker' than that provided by C99 restrict is not really useful without further elaboration, so that has been removed from the sentence. noalias on a return value is really used to mean that the function is malloc-like (and, in fact, we use this attribute to represent __attribute__((malloc)) in Clang), and this is a stronger guarantee than that provided by restrict (because it is a property of the pointed-to memory region, not just a guarantee on object access). Clarifying this is relevant to fixing (and was motivated by the discussion on) PR21556. llvm-svn: 222497
* [MCJIT] Remove JITEventListener::NotifyFreeingMachineCode. This method is deadLang Hames2014-11-213-32/+0
| | | | | | now that the old JIT has been removed. llvm-svn: 222494
* Add curly braces to workaround an MSVC bug.Zachary Turner2014-11-211-1/+3
| | | | | | MSVC can't parse this pattern for range-based for loops. llvm-svn: 222491
* [X86] Do not custom lower UINT_TO_FP when the target type does notQuentin Colombet2014-11-212-0/+16
| | | | | | | | match the custom lowering. <rdar://problem/19026326> llvm-svn: 222489
* Verifier: Check that all instructions have their parent pointers set upAdrian Prantl2014-11-211-0/+4
| | | | | | | correctly. This helps with catching problems caused by IRBuilder abuse such as the one fixed in CFE r222487. llvm-svn: 222488
* Fix more instances of -Wsentinel on Windows with s/NULL/nullptr/Reid Kleckner2014-11-204-5/+5
| | | | | | Follow up to r221940, where I must not have caught em all. NFC llvm-svn: 222481
* Add out of line virtual destructors to all LLVMTargetMachine subclassesReid Kleckner2014-11-2022-3/+37
| | | | | | | | | | | | | | | | | These recently all grew a unique_ptr<TargetLoweringObjectFile> member in r221878. When anyone calls a virtual method of a class, clang-cl requires all virtual methods to be semantically valid. This includes the implicit virtual destructor, which triggers instantiation of the unique_ptr destructor, which fails because the type being deleted is incomplete. This is just part of the ongoing saga of PR20337, which is affecting Blink as well. Because the MSVC ABI doesn't have key functions, we end up referencing the vtable and implicit destructor on any virtual call through a class. We don't actually end up emitting the dtor, so it'd be good if we could avoid this unneeded type completion work. llvm-svn: 222480
* Update Makefile following directory removal in r222466Mehdi Amini2014-11-201-1/+1
| | | | llvm-svn: 222475
* SimplifyCFG: Refactor GatherConstantCompares() result in a structMehdi Amini2014-11-201-133/+152
| | | | | | | | | | Code seems cleaner and easier to understand this way This is basically r222416, after fixes for MSVC lack of standard support, and a few cleaning (got rid of a warning). Thanks Nakamura Takumi and Nico Weber for the MSVC fixes. llvm-svn: 222472
* [Hexagon] [NFC] Merging InstPrinter directory in to MCTargetDesc since they ↵Colin LeMahieu2014-11-2011-47/+6
| | | | | | have a circular dependency. llvm-svn: 222458
* [MCJIT] Remove JITEventListener::NotifyFunctionEmitted - this method is deadLang Hames2014-11-203-167/+0
| | | | | | now that the legacy JIT has been removed. llvm-svn: 222453
* Fix a trip-count overflow issue in LoopUnroll.Michael Zolotukhin2014-11-203-3/+42
| | | | | | | | | | | | Currently LoopUnroll generates a prologue loop before the main loop body to execute first N%UnrollFactor iterations. Also, this loop is used if trip-count can overflow - it's determined by a runtime check. However, we've been mistakenly optimizing this loop to a linear code for UnrollFactor = 2, not taking into account that it also serves as a safe version of the loop if its trip-count overflows. llvm-svn: 222451
* Compilation test for PostOrderIterator.Michael Ilseman2014-11-202-0/+38
| | | | | | | | | If the template specialization for externally managed sets in PostOrderIterator call too far out of sync with each other, this unit test will fail to build. This is especially useful for developers who may not build Clang (the only in-tree user) every time. llvm-svn: 222447
* Update template specialization to reflect API changes.Michael Ilseman2014-11-201-2/+3
| | | | | | | | | po_iterator_storage's insertEdge was updated to reflect the API changes from many of our insert methods in r222334, however the template specialization for external storage was not updated. This updates the specialization. llvm-svn: 222446
* X86: use the correct alloca symbol for Windows ItaniumSaleem Abdulrasool2014-11-203-2/+24
| | | | | | | Windows itanium targets the MSVCRT, and the stack probe symbol is provided by MSVCRT. This corrects the emission of stack probes on i686-windows-itanium. llvm-svn: 222439
* Make DWARFAcceleratorTable::dump() const.Frederic Riss2014-11-202-9/+12
| | | | | | | | | As dump() methods should be. To allow that, do not store the DWARFFormValue objects used for the dump in the header data. Per Alexey's suggestion! llvm-svn: 222436
* Add missing copyright headers.Frederic Riss2014-11-202-0/+17
| | | | llvm-svn: 222435
* Do not create a replaceable Variables MDNode for function forward decls.Frederic Riss2014-11-201-4/+4
| | | | | | | | These fields would need to be explicitly deleted before we RAUW the temporary node anyway (this was done in cfe commit r222373). Instead, do not create these useless nodes in the first place. llvm-svn: 222434
* MCJIT tests passing on ARM after r222414 fixed the relocationRenato Golin2014-11-202-2/+2
| | | | llvm-svn: 222430
* Revert r222416, r222422, r222426: the former revision had problems and ↵Timur Iskhodzhanov2014-11-201-150/+136
| | | | | | fixing them introduced bugs llvm-svn: 222428
* Fix a typoTimur Iskhodzhanov2014-11-201-1/+1
| | | | llvm-svn: 222426
* SimplifyCFG.cpp: Tweak to let msc17 compliant.NAKAMURA Takumi2014-11-201-8/+11
| | | | | | | | - Use LLVM_DELETED_FUNCTION. - Don't use member initializers. - Don't use initializer list. llvm-svn: 222422
* SimplifyCFG: Refactor GatherConstantCompares() result in a structMehdi Amini2014-11-201-136/+147
| | | | | | Code seems cleaner and easier to understand this way llvm-svn: 222416
* [ELF] Prevent ARM ELF object writer from generating deprecated relocation ↵Jyoti Allur2014-11-203-4/+3
| | | | | | code R_ARM_PLT32 llvm-svn: 222414
* Add a test for r221870David Majnemer2014-11-202-0/+8
| | | | | | | bad-relocs.obj.coff-i386 has a relocation whose symbol index is outside the symbol table. llvm-svn: 222413
* Fix a typo in a comment.Craig Topper2014-11-201-1/+1
| | | | llvm-svn: 222412
* Remove unnecessary extra spaces from tablegen register info output.Craig Topper2014-11-201-1/+1
| | | | llvm-svn: 222411
* Use array_lengthof instead of sizeof(array)/sizeof(element) in a tablegen ↵Craig Topper2014-11-201-5/+4
| | | | | | output. llvm-svn: 222410
* Remove support for undocumented SpecialCaseList entries.Alexey Samsonov2014-11-202-31/+1
| | | | | | | | | | | | | "global-init", "global-init-src" and "global-init-type" were originally used to blacklist entities in ASan init-order checker. However, they were never documented, and later were replaced by "=init" category. Old blacklist entries should be converted as follows: * global-init:foo -> global:foo=init * global-init-src:bar -> src:bar=init * global-init-type:baz -> type:baz=init llvm-svn: 222401
* [Hexagon] Adding A2_xor instruction with IR selection pattern and test.Colin LeMahieu2014-11-193-6/+16
| | | | llvm-svn: 222399
* Revert "[Reassociate] As the expression tree is rewritten make sure the ↵Chad Rosier2014-11-1917-62/+60
| | | | | | | | | | | | | operands are" This reverts commit r222142. This is causing/exposing an execution-time regression in spec2006/gcc and coremark on AArch64/A57/Ofast. Conflicts: test/Transforms/Reassociate/optional-flags.ll llvm-svn: 222398
* [Hexagon] Adding A2_or instruction with IR selection pattern and test.Colin LeMahieu2014-11-193-3/+16
| | | | llvm-svn: 222396
* gold-plugin: Fix typo in error messageDuncan P. N. Exon Smith2014-11-191-1/+1
| | | | | | Spotted while reading code. llvm-svn: 222395
* [CMake] Update GetSVN.cmake to use LLVM version control helper scripts.Jordan Rose2014-11-191-17/+37
| | | | | | | | | | This allows the logic to work with Git, and also uses the variable names to match what Clang is actually looking for. This is a re-application of r190556 and r190808. This changes the interface of GetSVN.cmake. Clang change to follow. llvm-svn: 222391
* ADT: windows itanium targets msvcrt.dllSaleem Abdulrasool2014-11-191-1/+2
| | | | | | | Update the isOSMSVCRT to correctly identify that windows-itanium uses msvcrt.dll. llvm-svn: 222389
* 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
* 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
* 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
* [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
* 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
* [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
OpenPOWER on IntegriCloud