summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ARM: Split out cost model vcvt testcases.Jim Grosbach2013-04-212-172/+171
| | | | | | They had a separate RUN line already, so may as well be in a separate file. llvm-svn: 179988
* Passing arguments to varags functions under the SPARC v9 ABI.Jakob Stoklund Olesen2013-04-212-0/+60
| | | | | | | Arguments after the fixed arguments never use the floating point registers. llvm-svn: 179987
* Tidy up comment grammar.Jim Grosbach2013-04-211-2/+2
| | | | llvm-svn: 179986
* Fix the SETHIimm pattern for 64-bit code.Jakob Stoklund Olesen2013-04-212-2/+7
| | | | | | Don't ignore the high 32 bits of the immediate. llvm-svn: 179985
* Fix return type of isBitfield in the binding definitionDmitri Gribenko2013-04-211-1/+1
| | | | | | Patch by Loïc Jaquemet. llvm-svn: 179984
* Remove unused, undefined ArgFlagsTy::getArgFlagsString; add a comment about ↵Stephen Lin2013-04-211-5/+2
| | | | | | 'returned' llvm-svn: 179983
* SROA: Don't crash on a select with two identical operands.Benjamin Kramer2013-04-212-8/+19
| | | | | | | This is an edge case that can happen if we modify a chain of multiple selects. Update all operands in that case and remove the assert. PR15805. llvm-svn: 179982
* [Mips] Convert a GNU style Mips ABI name to the name accepted by LLVMSimon Atanasyan2013-04-212-1/+44
| | | | | | Mips backend. llvm-svn: 179981
* Revert "SimplifyCFG: If convert single conditional stores"Arnold Schwaighofer2013-04-212-171/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is the temptation to make this tranform dependent on target information as it is not going to be beneficial on all (sub)targets. Therefore, we should probably do this in MI Early-Ifconversion. This reverts commit r179957. Original commit message: "SimplifyCFG: If convert single conditional stores This transformation will transform a conditional store with a preceeding uncondtional store to the same location: a[i] = may-alias with a[i] load if (cond) a[i] = Y into an unconditional store. a[i] = X may-alias with a[i] load tmp = cond ? Y : X; a[i] = tmp We assume that on average the cost of a mispredicted branch is going to be higher than the cost of a second store to the same location, and that the secondary benefits of creating a bigger basic block for other optimizations to work on outway the potential case were the branch would be correctly predicted and the cost of the executing the second store would be noticably reflected in performance. hmmer's execution time improves by 30% on an imac12,2 on ref data sets. With this change we are on par with gcc's performance (gcc also performs this transformation). There was a 1.2 % performance improvement on a ARM swift chip. Other tests in the test-suite+external seem to be mostly uninfluenced in my experiments: This optimization was triggered on 41 tests such that the executable was different before/after the patch. Only 1 out of the 40 tests (dealII) was reproducable below 100% (by about .4%). Given that hmmer benefits so much I believe this to be a fair trade off. I am going to watch performance numbers across the builtbots and will revert this if anything unexpected comes up." llvm-svn: 179980
* [Mips] Do not add unnecessary Mips toolchain path to the listSimon Atanasyan2013-04-212-37/+0
| | | | | | of system include directories with extern "C" semantics. llvm-svn: 179979
* ARM: fix part of test which actually needed an asserts buildTim Northover2013-04-212-6/+30
| | | | | | This should fix a buildbot failure that occurred after r179977. llvm-svn: 179978
* ARM: Use ldrd/strd to spill 64-bit pairs when available.Tim Northover2013-04-214-50/+133
| | | | | | | This allows common sp-offsets to be part of the instruction and is probably faster on modern CPUs too. llvm-svn: 179977
* Remove the executable bit on cmake filesSylvestre Ledru2013-04-212-0/+0
| | | | llvm-svn: 179976
* SLPVectorize: Add support for vectorization of casts.Nadav Rotem2013-04-212-0/+107
| | | | llvm-svn: 179975
* SLPVectorizer: Fix a bug in the code that scans the tree in search of nodes ↵Nadav Rotem2013-04-211-0/+1
| | | | | | | | with multiple users. We did not terminate the switch case and we executed the search routine twice. llvm-svn: 179974
* [objc-arc] Cleaned up tail-call-invariant-enforcement.ll.Michael Gottesman2013-04-211-25/+40
| | | | | | | | | | | | Specifically: 1. Added checks that unwind is being properly added to various instructions. 2. Fixed the declaration/calling of objc_release to have a return type of void. 3. Moved all checks to precede the functions and added checks to ensure that the checks would only match inside the specific function that we are attempting to check. llvm-svn: 179973
* [objc-arc] Check that objc-arc-expand properly handles all strictly ↵Michael Gottesman2013-04-211-5/+71
| | | | | | forwarding calls and does not touch calls which are not strictly forwarding (i.e. objc_retainBlock). llvm-svn: 179972
* [objc-arc] Renamed the test file ↵Michael Gottesman2013-04-211-0/+0
| | | | | | clang-arc-used-intrinsic-removed-if-isolated.ll -> intrinsic-use-isolated.ll to match the other test file intrinsic-use.ll. llvm-svn: 179971
* Remove tbaa metadata.Bill Wendling2013-04-211-7/+3
| | | | llvm-svn: 179970
* The 'constexpr implies const' rule for non-static member functions is gone inRichard Smith2013-04-2125-82/+133
| | | | | | | | | C++1y, so stop adding the 'const' there. Provide a compatibility warning for code relying on this in C++11, with a fix-it hint. Update our lazily-written tests to add the const, except for those ones which were testing our implementation of this rule. llvm-svn: 179969
* When we strength reduce an objc_retainBlock call to objc_retain, increment ↵Michael Gottesman2013-04-211-1/+6
| | | | | | NumPeeps and make sure that Changed is set to true. llvm-svn: 179968
* Fixed comment typo.Michael Gottesman2013-04-211-1/+1
| | | | llvm-svn: 179967
* [objc-arc] Fixed typo in debug message.Michael Gottesman2013-04-211-1/+1
| | | | llvm-svn: 179966
* [objc-arc] Fixed comment typo.Michael Gottesman2013-04-211-1/+1
| | | | llvm-svn: 179965
* [objc-arc] Refactored OptimizeReturns so that it uses continue instead of a ↵Michael Gottesman2013-04-211-25/+30
| | | | | | large multi-level nested if statement. llvm-svn: 179964
* [objc-arc] Added debug statement saying when we are resetting a sequence's ↵Michael Gottesman2013-04-201-0/+1
| | | | | | | | | | progress. This will make it clearer when we are actually resetting a sequence's progress vs just changing state. This is an important distinction because the former case clears any pointers that we are tracking while the later does not. llvm-svn: 179963
* Disable VLA diagnostic in C++1y mode, and add some tests.Richard Smith2013-04-205-1/+82
| | | | | | | | | | | | Still to do here: - we have a collection of syntactic accepts-invalids to diagnose - support non-PODs in VLAs, including dynamic initialization / destruction - runtime checks (and throw std::bad_array_length) for bad bound - support VLA capture by reference in lambdas - properly support VLAs in range-based for (don't recompute bound) llvm-svn: 179962
* Compile varargs functions for SPARCv9.Jakob Stoklund Olesen2013-04-202-31/+119
| | | | | | | | | | | | With a little help from the frontend, it looks like the standard va_* intrinsics can do the job. Also clean up an old bitcast hack in LowerVAARG that dealt with unaligned double loads. Load SDNodes can specify an alignment now. Still missing: Calling varargs functions with float arguments. llvm-svn: 179961
* Fix PR15800. Do not try to vectorize vectors and structs.Nadav Rotem2013-04-202-1/+24
| | | | llvm-svn: 179960
* Add another test I forgot to svn add.Richard Smith2013-04-201-0/+30
| | | | llvm-svn: 179959
* C++1y: Allow aggregates to have default initializers.Richard Smith2013-04-2037-41/+495
| | | | | | | | | | | Add a CXXDefaultInitExpr, analogous to CXXDefaultArgExpr, and use it both in CXXCtorInitializers and in InitListExprs to represent a default initializer. There's an additional complication here: because the default initializer can refer to the initialized object via its 'this' pointer, we need to make sure that 'this' points to the right thing within the evaluation. llvm-svn: 179958
* SimplifyCFG: If convert single conditional storesArnold Schwaighofer2013-04-202-4/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This transformation will transform a conditional store with a preceeding uncondtional store to the same location: a[i] = may-alias with a[i] load if (cond) a[i] = Y into an unconditional store. a[i] = X may-alias with a[i] load tmp = cond ? Y : X; a[i] = tmp We assume that on average the cost of a mispredicted branch is going to be higher than the cost of a second store to the same location, and that the secondary benefits of creating a bigger basic block for other optimizations to work on outway the potential case were the branch would be correctly predicted and the cost of the executing the second store would be noticably reflected in performance. hmmer's execution time improves by 30% on an imac12,2 on ref data sets. With this change we are on par with gcc's performance (gcc also performs this transformation). There was a 1.2 % performance improvement on a ARM swift chip. Other tests in the test-suite+external seem to be mostly uninfluenced in my experiments: This optimization was triggered on 41 tests such that the executable was different before/after the patch. Only 1 out of the 40 tests (dealII) was reproducable below 100% (by about .4%). Given that hmmer benefits so much I believe this to be a fair trade off. I am going to watch performance numbers across the builtbots and will revert this if anything unexpected comes up. llvm-svn: 179957
* ARM: don't add FrameIndex offset for LDMIA (has no immediate)Tim Northover2013-04-202-1/+37
| | | | | | | | | | | | Previously, when spilling 64-bit paired registers, an LDMIA with both a FrameIndex and an offset was produced. This kind of instruction shouldn't exist, and the extra operand was being confused with the predicate, causing aborts later on. This removes the invalid 0-offset from the instruction being produced. llvm-svn: 179956
* recommit testsNuno Lopes2013-04-201-0/+20
| | | | llvm-svn: 179955
* Minor renaming of tests (for consistency with an in-development patch)Stephen Lin2013-04-201-10/+10
| | | | llvm-svn: 179954
* Update some stuff on the open projects page to reflect things we've already ↵Richard Smith2013-04-201-11/+9
| | | | | | done. llvm-svn: 179953
* AArch64: remove useless commentTim Northover2013-04-201-2/+0
| | | | llvm-svn: 179952
* Switch C++11 open project to C++1y :)Richard Smith2013-04-201-2/+2
| | | | llvm-svn: 179951
* Add note that some of these links are dead for now.Richard Smith2013-04-201-0/+3
| | | | llvm-svn: 179950
* VLAs in C++14!Richard Smith2013-04-201-2/+2
| | | | llvm-svn: 179949
* Move 'kw_align' case to proper section, reorganize function attribute ↵Stephen Lin2013-04-201-12/+25
| | | | | | keyword case statements to be consistent with r179119 llvm-svn: 179948
* Variable templates and generic lambdas are approved for C++14.Richard Smith2013-04-201-2/+2
| | | | llvm-svn: 179947
* Clarifying memory allocation: approved for C++14. Move from N/A to no, since ↵Richard Smith2013-04-201-2/+2
| | | | | | we currently relax 'operator new' calls which didn't come from new-expressions. llvm-svn: 179946
* No digit separators for C++14.Richard Smith2013-04-201-7/+0
| | | | llvm-svn: 179945
* Generalized constexpr is approved for C++14.Richard Smith2013-04-201-1/+1
| | | | llvm-svn: 179944
* More approved C++14 features.Richard Smith2013-04-201-12/+5
| | | | llvm-svn: 179943
* Binary literals are approved for C++14.Richard Smith2013-04-201-1/+6
| | | | llvm-svn: 179942
* Implement core issue 1608: class members can be found via operator lookup in ↵Richard Smith2013-04-202-6/+17
| | | | | | a trailing return type in that class's body. llvm-svn: 179941
* Remove unused ShouldFoldAtomicFences flag.Tim Northover2013-04-205-32/+0
| | | | | | | | I think it's almost impossible to fold atomic fences profitably under LLVM/C++11 semantics. As a result, this is now unused and just cluttering up the target interface. llvm-svn: 179940
* Remove unused MEMBARRIER DAG node; it's been replaced by ATOMIC_FENCE.Tim Northover2013-04-2018-195/+2
| | | | llvm-svn: 179939
OpenPOWER on IntegriCloud