summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "ARM: improve RTABI 4.2 conformance on Linux"Chad Rosier2014-08-232-38/+58
| | | | | | | This reverts commit r215862 due to nightly failures. Will work on getting a reduced test case, but I wanted to get our bots green in the meantime. llvm-svn: 216325
* Revert "ARM: mark missing functions from RTABI"Chad Rosier2014-08-231-24/+0
| | | | | | This reverts commit r215863. llvm-svn: 216324
* I forgot to include the header file for std::find, and that's breaking the ↵Enrico Granata2014-08-231-0/+2
| | | | | | Linux build. Push a fix out. Patch suggested by Paul Osmialowski and Randy Smith llvm-svn: 216323
* Revert "Implement generic mad_sat"Aaron Watry2014-08-236-100/+0
| | | | | | | | This reverts commit cf62eded8b623a1c10d3692d25e5882b7939f564. I didn't mean to commit this... Jan has a v3 incoming llvm-svn: 216322
* Add int3/uint3 to integer-gentype.incAaron Watry2014-08-231-0/+8
| | | | | | | | These were missing and caused mad24/mul24 with int3/uint3 arg type to fail Signed-off-by: Aaron Watry <awatry@gmail.com> Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 216321
* Implement generic mad_satAaron Watry2014-08-236-0/+100
| | | | | | | | | v2: Fix trailing whitespace Fix signed long overflow improve comment Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu> llvm-svn: 216320
* [x86] Start fixing a really subtle and terrible form of miscompile inChandler Carruth2014-08-232-28/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | these DAG combines. The DAG auto-CSE thing is truly terrible. Due to it, when RAUW-ing a node with its operand, you can cause its uses to CSE to itself, which then causes their uses to become your uses which causes them to be picked up by the RAUW. For nodes that are determined to be "no-ops", this is "fine". But if the RAUW is one of several steps to enact a transformation, this causes the DAG to really silently eat an discard nodes that you would never expect. It took days for me to actually pinpoint a test case triggering this and a really frustrating amount of time to even comprehend the bug because I never even thought about the ability of RAUW to iteratively consume nodes due to CSE-ing them into itself. To fix this, we have to build up a brand-new chain of operations any time we are combining across (potentially) intervening nodes. But once the logic is added to do this, another issue surfaces: CombineTo eagerly deletes the one node combined, *but no others*. This is... really frustrating. If deleting it makes its operands become dead, those operand nodes often won't go onto the worklist in the order you would want -- they're already on it and not near the top. That means things higher on the worklist will get combined prior to these dead nodes being GCed out of the worklist, and if the chain is long, the immediate users won't be enough to re-detect where the root of the chain is that became single-use again after deleting the dead nodes. The better way to do this is to never immediately delete nodes, and instead to just enqueue them so we can recursively delete them. The combined-from node is typically not on the worklist anyways by virtue of having been popped off.... But that in turn breaks other tests that *require* CombineTo to delete unused nodes. :: sigh :: Fortunately, there is a better way. This whole routine should have been returning the replacement rather than using CombineTo which is quite hacky. Switch to that, and all the pieces fall together. I suspect the same kind of miscompile is possible in the half-shuffle folding code, and potentially the recursive folding code. I'll be switching those over to a pattern more like this one for safety's sake even though I don't immediately have any test cases for them. Note that the only way I got a test case for this instance was with *heavily* DAG combined 256-bit shuffle sequences generated by my fuzzer. ;] llvm-svn: 216319
* Fix assignments that should be comparisons x3Eric Fiselier2014-08-233-4/+4
| | | | llvm-svn: 216318
* Add return statement to a test class's assignment operator. Defect found by ↵Eric Fiselier2014-08-231-1/+1
| | | | | | Coverity Scan. llvm-svn: 216317
* ProgrammersManual: the flag is called -debug-onlyHans Wennborg2014-08-231-1/+1
| | | | llvm-svn: 216316
* [libcxx] Add --show-unsupported and --show-xfail to check-libcxx's default ↵Eric Fiselier2014-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | LIT args. Summary: In order to gather more information about testsuite results these flags should be added to LIT's default args. These new switches were recently added to LIT. It been more than two weeks since both switches were added. I think its time we add these to our LIT flags. Reviewers: mclow.lists, danalbert Reviewed By: danalbert Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D5037 llvm-svn: 216315
* Fix handling of format strings to work with python 2.6Eric Fiselier2014-08-231-4/+4
| | | | llvm-svn: 216314
* CodeGen: Skip unnamed bitfields when handling designated initializersDavid Majnemer2014-08-232-1/+12
| | | | | | | We would accidently initialize unnamed bitfields instead of the following field. llvm-svn: 216313
* [modules] When merging a tag declaration that has a typedef name for linkageRichard Smith2014-08-235-7/+88
| | | | | | | purposes, look for other typedefs with that same name and merge into their named tag declaration if there is one. llvm-svn: 216312
* [modules] Put class template declarations into the scope in which they'reRichard Smith2014-08-234-3/+27
| | | | | | | | | | | declared, rather than putting them into the template parameter scope. We previously had *no record* in the scope for class template declarations, once those declarations completed and their template parameter scopes were popped. This in turn caused us to be unable to merge class template declarations that were declared in the global scope (where we use scope lookup rather than DeclContext lookup for merging), when loading a module. llvm-svn: 216311
* llvm-cov: test: add xfail for the big-endian buildbotsAlex Lorenz2014-08-233-0/+9
| | | | llvm-svn: 216310
* Initialize LLVM when LLDB is initialized, andSean Callanan2014-08-232-11/+16
| | | | | | | | install a crash handler. <rdar://problem/18083226> llvm-svn: 216309
* Fixed a problem where IOObject was wronglySean Callanan2014-08-231-6/+6
| | | | | | capitalized. llvm-svn: 216308
* Revert r215611 because it caused the infinite loop in bug 20736. There is a ↵Nick Lewycky2014-08-232-2/+5
| | | | | | reduced testcase in that bug. llvm-svn: 216307
* Fix a bad location in -Wparentheses fix-it hintRichard Trieu2014-08-232-1/+103
| | | | | | | The code used getLocStart() instead of getLocEnd(). This works for single token expressions, but breaks if the expression is longer. llvm-svn: 216306
* Extend the encoding parser to support the @typeName syntax for Objective-C ↵Enrico Granata2014-08-232-7/+24
| | | | | | object types llvm-svn: 216305
* Fix a couple of potential issues in the lexer where we were ignoring the ↵Enrico Granata2014-08-231-1/+7
| | | | | | putback data llvm-svn: 216304
* Add a test case for SROA where the store size is bigger than slice size. TheYunzhong Gao2014-08-221-0/+34
| | | | | | test case was fixed in r216248. llvm-svn: 216303
* Add support for comdats to the gold plugin.Rafael Espindola2014-08-224-12/+193
| | | | | | | | | | | | | | | | | | | | | | | There are two parts to this. First, the plugin needs to tell gold the comdat by setting comdat_key. What gets things a bit more complicated is that gold only seems symbols. In particular, if A is an alias to B, it only sees the symbols A and B. It can then ask us to keep symbol A but drop symbol B. What we have to do instead is to create an internal version of B and make A an alias to that. At some point some of this logic should be moved to lib/Linker so that we don't map a Constant to an internal version just to have lib/Linker map that again to the destination module. The reason for implementing this in tools/gold for now is simplicity. With it in place it should be possible to update clang to use comdats for constructors and destructors on ELF without breaking the LTO bootstrap. Once that is done I intend to come back and improve the interface lib/Linker exposes. llvm-svn: 216302
* Objective-C. Warn when @encode'ing provides an incompleteFariborz Jahanian2014-08-225-30/+72
| | | | | | | | type encoding because in certain cases, such as for vector types, because we still haven't designed encoding for them. rdar://9255564 llvm-svn: 216301
* llvm-cov: add code coverage tool that's based on coverage mapping format and ↵Alex Lorenz2014-08-2232-34/+2737
| | | | | | | | | | | | | clang's pgo. This commit expands llvm-cov's functionality by adding support for a new code coverage tool that uses LLVM's coverage mapping format and clang's instrumentation based profiling. The gcov compatible tool can be invoked by supplying the 'gcov' command as the first argument, or by modifying the tool's name to end with 'gcov'. Differential Revision: http://reviews.llvm.org/D4445 llvm-svn: 216300
* [SROA] Fold a PHI node if all its incoming values are the sameJingyue Wu2014-08-222-41/+106
| | | | | | | | | | | | | | | | | | | Summary: Fixes PR20425. During slice building, if all of the incoming values of a PHI node are the same, replace the PHI node with the common value. This simplification makes alloca's used by PHI nodes easier to promote. Test Plan: Added three more tests in phi-and-select.ll Reviewers: nlewycky, eliben, meheff, chandlerc Reviewed By: chandlerc Subscribers: zinovy.nis, hfinkel, baldrick, llvm-commits Differential Revision: http://reviews.llvm.org/D4659 llvm-svn: 216299
* DebugInfo: Test that the loop backedge in a range-for is attribute to the ↵David Blaikie2014-08-221-0/+12
| | | | | | | | | | | loop header. This already works, but somewhat by accident (due to the order of emission in clang, the location is set to the loop header (during the emission of the iteratior increment) before the loop backedge is emitted), so let's just add a test for symmetry and future-proofing. llvm-svn: 216298
* DebugInfo: for loop backedge should be attributed to the start of the for ↵David Blaikie2014-08-222-0/+14
| | | | | | | | | | | | | | | | statement. Similar to r215768 (which fixed the same case for while loops). To quote r215768's commit message: "A little test case simplification - this could be simplified further, though there are certainly interesting connections to the if/else construct so I'm hesitant to remove that entirely though it does appear somewhat unrelated. (similar fix to r215766, related to PR19864)" llvm-svn: 216297
* Include llvm-config.h instead of config.hNiels Ole Salscheider2014-08-221-1/+1
| | | | | | Signed-off-by: Niels Ole Salscheider <niels_ole@salscheider-online.de> Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 216296
* [PECOFF] Explicitly pass machine typeRui Ueyama2014-08-225-15/+13
| | | | | | | x86 and x64 are created equal -- taking x86 as the default argument made it hard to find bugs. llvm-svn: 216295
* ARM / x86_64 varargs: Don't save regparms in prologue without va_startReid Kleckner2014-08-2212-7/+61
| | | | | | | | | | | | There's no need to do this if the user doesn't call va_start. In the future, we're going to have thunks that forward these register parameters with musttail calls, and they won't need these spills for handling va_start. Most of the test suite changes are adding va_start calls to existing tests to keep things working. llvm-svn: 216294
* Clear the clang release notes to make room for 3.6.Rafael Espindola2014-08-221-80/+11
| | | | llvm-svn: 216293
* Clear the llvm release notes to make room for 3.6.Rafael Espindola2014-08-221-153/+11
| | | | llvm-svn: 216292
* DebugInfo: Provide scopes for C++11 range-for loop variables similar to ↵David Blaikie2014-08-222-10/+11
| | | | | | r216288 (which was for plain-for loop condition variables). llvm-svn: 216291
* [UBSan] Add support for printing backtraces to all UBSan handlersAlexey Samsonov2014-08-227-73/+112
| | | | llvm-svn: 216289
* DebugInfo: Scope for condition variables more narrowly than the loop variable.David Blaikie2014-08-223-32/+40
| | | | | | | | for loops introduce two scopes - one for the outer loop variable and its initialization, and another for the body of the loop, including any variable declared inside the loop condition. llvm-svn: 216288
* Fix a CMake error when using CMake 3.0.1Zachary Turner2014-08-221-5/+1
| | | | llvm-svn: 216286
* Add the start of the support for llvm-objdump’s -private-headers for ↵Kevin Enderby2014-08-225-0/+302
| | | | | | | | Mach-O files. This adds the printing of the mach header. Load command printing will be next. llvm-svn: 216285
* Add a few missing mach header flags.Kevin Enderby2014-08-221-1/+4
| | | | llvm-svn: 216284
* Ignore -Wunsupported-dll-base-class-template by defaultHans Wennborg2014-08-223-9/+9
| | | | | | | | The situation it is warning about (see PR20725) is not very likely to be a real problem, and it is unclear what action the user should take if the warning does fire. llvm-svn: 216283
* Objective-C. Update my previous patch to not warn ifFariborz Jahanian2014-08-222-3/+6
| | | | | | | +initialize is called on 'super' in its implementation. rdar://16628028 llvm-svn: 216282
* Fix PR17239 by changing the semantics of the RemainingArgsClass Option kindReid Kleckner2014-08-225-4/+60
| | | | | | | | | | | | | | | | | | | | | | | This patch aims at fixing PR17239. This bug happens because the /link (clang-cl.exe argument) is marked as "consume all remaining arguments". However, when inside a response file, /link should only consume all remaining arguments inside the response file where it is located, not the entire command line after expansion. The LLVM side of the patch will change the semantics of the RemainingArgsClass kind to always consume only until the end of the response file when the option originally came from a response file. There are only two options in this class: dash dash (--) and /link. This is the Clang side of the patch in http://reviews.llvm.org/D4899 Reviewered By: rafael, rnk Differential Revision: http://reviews.llvm.org/D4900 Patch by Rafael Auler! llvm-svn: 216281
* Fix PR17239 by changing the semantics of the RemainingArgsClass Option kindReid Kleckner2014-08-225-20/+70
| | | | | | | | | | | | | | | | | | | | | | | This patch contains the LLVM side of the fix of PR17239. This bug that happens because the /link (clang-cl.exe argument) is marked as "consume all remaining arguments". However, when inside a response file, /link should only consume all remaining arguments inside the response file where it is located, not the entire command line after expansion. My patch will change the semantics of the RemainingArgsClass kind to always consume only until the end of the response file when the option originally came from a response file. There are only two options in this class: dash dash (--) and /link. Reviewed By: rnk Differential Revision: http://reviews.llvm.org/D4899 Patch by Rafael Auler! llvm-svn: 216280
* R600/SI: Use READ2/WRITE2 instructions for 64-bit mem ops with 32-bit alignmentTom Stellard2014-08-225-4/+116
| | | | llvm-svn: 216279
* R600/SI: Use a ComplexPattern for DS loads and storesTom Stellard2014-08-228-120/+169
| | | | llvm-svn: 216278
* R600/SI: Wrap local memory pointer in AssertZExt on SITom Stellard2014-08-221-0/+12
| | | | | | | | | These pointers are really just offsets and they will always be less than 16-bits. Using AssertZExt allows us to use computeKnownBits to prove that these values are positive. We will use this information in a later commit. llvm-svn: 216277
* R600/SI: Use correct helper class for DS_WRITE2 instructionsTom Stellard2014-08-221-1/+1
| | | | | | | DS_1A uses a single offset encoding, so offset1 wasn't being encoded. llvm-svn: 216276
* [test/CodeGen/ARM] Adpat test to match new codegen after r216274.Quentin Colombet2014-08-221-29/+29
| | | | | | | | | | | Moreover, rework some patterns to actually check the emitted instructions instead of matching unrelated string! E.g., some of the "// CHECK: vmov" were matching stuff like ".globl funcname_with_vmov" instead of actual instructions. llvm-svn: 216275
* [ARM] Move the implementation of the target hooks related to copy-relatedQuentin Colombet2014-08-225-116/+118
| | | | | | | | | instruction from ARMInstrInfo to ARMBaseInstrInfo. That way, thumb mode can also benefit from the advanced copy optimization. <rdar://problem/12702965> llvm-svn: 216274
OpenPOWER on IntegriCloud