summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* clang-format: [Proto] Improve wrapping of message field attributes.Daniel Jasper2016-01-043-12/+30
| | | | | | | | | | | | | | | | | | | | | | | Before: optional AAA aaa = 1 [foo = { key: "a" // }, bar = { key: "a" // }]; After: optional AAA aaa = 1 [ foo = { key: "a" // }, bar = { key: "a" // } ]; llvm-svn: 256736
* Fix a horrible infloop in value tracking in the face of dead code.Chandler Carruth2016-01-041-1/+6
| | | | | | | | | | | | | | | Amazingly, we just never triggered this without: 1) Moving code around for MetadataTracking so that a certain *different* amount of inlining occurs in the per-TU compile step. 2) Then you LTO opt or clang with a bootstrap, and get inlining, loop opts, and GVN line up everything *just* right. I don't really know how we didn't hit this before. We really need to be fuzz testing stuff, it shouldn't be hard to trigger. I'm working on crafting a reduced nice test case, and will submit that when I have it, but I want to get LTO build bots going again. llvm-svn: 256735
* [TableGen] Fix a typo in r256733.Craig Topper2016-01-041-1/+1
| | | | llvm-svn: 256734
* [TableGen] Use some free space in Init to store the opcode for ↵Craig Topper2016-01-042-20/+23
| | | | | | UnOpInit/BinOpInit/TernOpInit allowing those types to be a little smaller. NFC llvm-svn: 256733
* [TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects ↵Craig Topper2016-01-041-0/+3
| | | | | | in the support library will be deleted. llvm-svn: 256732
* [TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects ↵Craig Topper2016-01-041-0/+3
| | | | | | in the support library will be deleted. llvm-svn: 256731
* [X86] Make hasFP constant timeDavid Majnemer2016-01-046-25/+33
| | | | | | | | | | We need a frame pointer if there is a push/pop sequence after the prologue in order to unwind the stack. Scanning the instructions to figure out if this happened made hasFP not constant-time which is a violation of expectations. Let's compute this up-front and reuse that computation when we need it. llvm-svn: 256730
* Print stacktrace with UBSANEric Fiselier2016-01-041-0/+1
| | | | llvm-svn: 256729
* [LICM] Make instruction sinking funclet-awareDavid Majnemer2016-01-044-18/+147
| | | | | | | | | | | We had two bugs here: - We might try to sink into a catchswitch, causing verifier failures. - We will succeed in sinking into a cleanuppad but we didn't update the funclet operand bundle. This fixes PR26000. llvm-svn: 256728
* Remove unsafe "__as_link()" cast member function.Eric Fiselier2016-01-041-27/+53
| | | | | | | | | | | "__as_link()" can only be used safely on "__list_node" objects. This patch moves the "__as_link()" member function from "__list_node_base" to "__list_node" so it cannot be used incorrectly. Unsafe downcasts now use a non-member function so we don't defer the type-punned pointer. llvm-svn: 256727
* [TableGen] Change TGParser::SetValue to take an ArrayRef instead of ↵Craig Topper2016-01-042-15/+10
| | | | | | std::vector reference. Use None in many places where a default constructed vector was being passed. NFC llvm-svn: 256726
* [TableGen] Fix a bug that caused the wrong name for a record built from a ↵Craig Topper2016-01-042-7/+12
| | | | | | | | | | | | multiclass containing a defm called NAME that references another multiclass that contains a defm that uses NAME concatenated with other strings. It would end up doing the concatenations from the second multiclass twice. This occured because SetValue detected a self assignment when trying to set the value of NAME to a VarInit called NAME. NAME is special here and it will get cleaned up later. So add a flag to suppress the self assignment check for this case. Strangely the self-assignment error was returning false indicating it wasn't an error, but it wasn't doing the right thing. So this also changes it to report an error. This fixes the names of some AVX512 FMA instructions that showed this double expansion. llvm-svn: 256725
* Remove unused variableEd Maste2016-01-041-3/+1
| | | | | | Obtained from FreeBSD r292611 llvm-svn: 256724
* Strip trailing whitespaceEd Maste2016-01-044-197/+197
| | | | | | | | (There are changes in the copies of these four files in the FreeBSD base system, and I've changed these ones to reduce gratuitous diffs in future imports.) llvm-svn: 256723
* [PGO] Sync up template file with masterXinliang David Li2016-01-041-1/+1
| | | | llvm-svn: 256722
* llvm/include/llvm/ProfileData/InstrProfData.inc: Add c++-mode in the header.NAKAMURA Takumi2016-01-041-1/+1
| | | | llvm-svn: 256721
* Fix one file that I didn't convert properly in r256707.Dimitry Andric2016-01-031-1/+1
| | | | llvm-svn: 256720
* Use std::is_sorted and std::none_of instead of manual loops. NFCCraig Topper2016-01-034-25/+23
| | | | llvm-svn: 256719
* ArrayRef-ize a function. NFCCraig Topper2016-01-031-6/+4
| | | | llvm-svn: 256718
* Use std::is_sorted instead of a manual loop. NFCCraig Topper2016-01-031-5/+1
| | | | llvm-svn: 256717
* [PGO] Cleanup: remove reduncant calls in loweringXinliang David Li2016-01-031-2/+0
| | | | | | | | CoverageMapping data's section and alignment is already set during creation. No need to call it again during lowering. llvm-svn: 256716
* [PGO] Cleanup: Use covmap header definition in the template fileXinliang David Li2016-01-031-4/+4
| | | | | | | | | | | | | | This is one last remaining instrumentatation related structure that needs to be migrate to use the centralized template definition. With this change, instrumentation code related to coverage module header will be kept in sync with the coverage mapping reader. The remaining code which makes implicit assumption about covmap control structure layout in the the lowering pass will cleaned up in a different patch. This patch is not intended to have no functional change. llvm-svn: 256715
* [PGO] Cleanup: Use covmap header definition in the template fileXinliang David Li2016-01-032-15/+21
| | | | | | | | | | | | | | This is one last remaining instrumentatation related structure that needs to be migrate to use the centralized template definition. With this change, instrumentation code related to coverage module header will be kept in sync with the coverage mapping reader. The remaining code which makes implicit assumption about covmap control structure layout in the the lowering pass will cleaned up in a different patch. This patch is not intended to have no functional change. llvm-svn: 256714
* [X86][MMX] Regenerated vector insertion test.Simon Pilgrim2016-01-031-10/+24
| | | | | | Shows the true horror of what is going on.... llvm-svn: 256713
* [PGO] Code refactoring to use header struct def /NFCXinliang David Li2016-01-031-5/+10
| | | | llvm-svn: 256712
* [PGO] Sync up template file with masterXinliang David Li2016-01-031-0/+19
| | | | llvm-svn: 256711
* [PGO] Introduce coverage map header structure in PGO data template file /NFCXinliang David Li2016-01-032-1/+26
| | | | llvm-svn: 256710
* [SelectionDAG] Pulled out common code for CONCAT_VECTORS node creationSimon Pilgrim2016-01-031-39/+55
| | | | | | Pulled out the similar CONCAT_VECTORS creation code from the 2/3 operand getNode() calls (to handle all UNDEF and all BUILD_VECTOR cases). Added a similar handler to the general getNode() call as well. llvm-svn: 256709
* [X86][SSE] Added tests for insertion of zero elements into vectorsSimon Pilgrim2016-01-031-0/+539
| | | | | | Many of these could be much better if we just lowered them all as shuffles - especially for the 256-bit vectors. llvm-svn: 256708
* Fix several accidental DOS line endings in source filesDimitry Andric2016-01-0346-1688/+1688
| | | | | | | | | | | | | | | Summary: There are a number of files in the tree which have been accidentally checked in with DOS line endings. Convert these to native line endings. There are also a few files which have DOS line endings on purpose, and I have set the svn:eol-style property to 'CRLF' on those. Reviewers: joerg, aaron.ballman Subscribers: aaron.ballman, sanjoy, dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D15848 llvm-svn: 256707
* [X86][SSE41] Added test cases for improving insertps shufflesSimon Pilgrim2016-01-031-0/+111
| | | | | | As mentioned on D14261, an upcoming patch will improve combines of insertps instructions. llvm-svn: 256706
* [X86][SSE] Added v4f32 shuffle with zero testsSimon Pilgrim2016-01-031-0/+139
| | | | | | This is mainly test cases for improvements to insertps matching, but pre-SSE41 shuffles could be improved as well llvm-svn: 256705
* Fix several accidental DOS line endings in source filesDimitry Andric2016-01-0316-555/+555
| | | | | | | | | | | | | | | Summary: There are a number of files in the tree which have been accidentally checked in with DOS line endings. Convert these to native line endings. There are also a few files which have DOS line endings on purpose, and I have set the svn:eol-style property to 'CRLF' on those. Reviewers: joerg, aaron.ballman Subscribers: aaron.ballman, cfe-commits Differential Revision: http://reviews.llvm.org/D15849 llvm-svn: 256704
* [TableGen] Simplify some code slightly. No need to check if the arrays are ↵Craig Topper2016-01-031-18/+10
| | | | | | empty before printing. The loop can be made to print the same thing if the loop is empty. NFC llvm-svn: 256703
* Use an ArrayRef to simplify repeated calculation of the array end. NFCCraig Topper2016-01-031-5/+6
| | | | llvm-svn: 256702
* Use std::is_sorted instead of manual loops. NFCCraig Topper2016-01-032-8/+9
| | | | llvm-svn: 256701
* Use range-based for loop. NFCCraig Topper2016-01-031-2/+2
| | | | llvm-svn: 256700
* [TableGen] Replace a logically negated xor of bools with just an equality ↵Craig Topper2016-01-031-1/+1
| | | | | | comparison for readability. NFC llvm-svn: 256699
* [TableGen] Use std::find_if and a lambda instead of manual loops.Craig Topper2016-01-031-9/+10
| | | | llvm-svn: 256698
* [TableGen] Fix a bug introduced in r256627. If the switch was not emitted we ↵Craig Topper2016-01-031-2/+3
| | | | | | still emitted a closing curly brace. llvm-svn: 256697
* [TableGen] Use range-based for loops. NFCCraig Topper2016-01-031-20/+13
| | | | llvm-svn: 256696
* [PGO] simple refactoring (NFC)Xinliang David Li2016-01-032-4/+10
| | | | llvm-svn: 256695
* WinEHPrepare.cpp: Suppress a warning for -Asserts. [-Wunused-variable]NAKAMURA Takumi2016-01-031-4/+2
| | | | llvm-svn: 256694
* Revert or r256638. I`ve lost a little piece of code when resolved conflicts ↵George Rimar2016-01-022-51/+8
| | | | | | | | | | | | | | | | | | right before commit. Sorry about that. Test did not catch this either, so I`ll improve it and recommit later. Original commit message: [ELF] - Optimize .eh_frame section: remove CIE if all FDEs referencing it were removed. This patch performs little optimization for eh_frame section. If all FDE`s that referenced CIE are removed then CIE is also removed from output. That can happen for example when dropping FDEs that point to dropped sections. Testcase showing that is included. The same optimization was added to ld about 14 years ago: https://sourceware.org/ml/binutils/2001-12/msg00144.html, gold does not do that it seems. Differential revision: http://reviews.llvm.org/D15564 llvm-svn: 256693
* [Verifier] Add braces to satisfy buildbots. NFCJoseph Tremoulet2016-01-021-1/+2
| | | | | | Fix build break introduced by r256691. llvm-svn: 256692
* [WinEH] Verify catchswitch handlersJoseph Tremoulet2016-01-022-0/+16
| | | | | | | | | | | | | | Summary: The handler list must be nonempty and consist solely of CatchPads. Reviewers: rnk, andrew.w.kaylor, majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15842 llvm-svn: 256691
* [WinEH] Tighten parentPad verifier checksJoseph Tremoulet2016-01-023-7/+62
| | | | | | | | | | | | Summary: A catchswitch cannot be a parent of a cleanuppad or another catchswitch. Reviewers: rnk, andrew.w.kaylor, majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15841 llvm-svn: 256690
* [WinEH] Update catchrets with cloned successorsJoseph Tremoulet2016-01-022-4/+83
| | | | | | | | | | | | | | | | | | | | Summary: Add a pass to update catchrets when their successors get cloned; the existing pass doesn't catch these because it walks the funclet whose blocks are being cloned but the catchret is in a child funclet. Also update the test for removing incoming PHI values; when the predecessor is a catchret, the relevant color is the catchret's parentPad, not its block's color. Reviewers: andrew.w.kaylor, rnk, majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15840 llvm-svn: 256689
* Correct misleading formatting of several ifs followed by two statements ↵Yaron Keren2016-01-021-5/+16
| | | | | | | | | | without braces. While the original code would work with or without braces, it makes sense to set HaveSemi to true only if (!HaveSemi), otherwise it's already true, so I put the assignment inside the if block. This addresses PR25998. llvm-svn: 256688
* [WinEH] Add additional verificationDavid Majnemer2016-01-021-4/+7
| | | | | | | | Recolor the IR to make sure our computed colors are not hiding any bugs. Also, verifyFunction if we are running some post-preparation operations; some of these operations can hide latent bugs. llvm-svn: 256687
OpenPOWER on IntegriCloud