summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/CPP
Commit message (Collapse)AuthorAgeFilesLines
* IR: add "cmpxchg weak" variant to support permitted failure.Tim Northover2014-06-131-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a weak variant of the cmpxchg operation, as described in C++11. A cmpxchg instruction with this modifier is permitted to fail to store, even if the comparison indicated it should. As a result, cmpxchg instructions must return a flag indicating success in addition to their original iN value loaded. Thus, for uniformity *all* cmpxchg instructions now return "{ iN, i1 }". The second flag is 1 when the store succeeded. At the DAG level, a new ATOMIC_CMP_SWAP_WITH_SUCCESS node has been added as the natural representation for the new cmpxchg instructions. It is a strong cmpxchg. By default this gets Expanded to the existing ATOMIC_CMP_SWAP during Legalization, so existing backends should see no change in behaviour. If they wish to deal with the enhanced node instead, they can call setOperationAction on it. Beware: as a node with 2 results, it cannot be selected from TableGen. Currently, no use is made of the extra information provided in this patch. Test updates are almost entirely adapting the input IR to the new scheme. Summary for out of tree users: ------------------------------ + Legacy Bitcode files are upgraded during read. + Legacy assembly IR files will be invalid. + Front-ends must adapt to different type for "cmpxchg". + Backends should be unaffected by default. llvm-svn: 210903
* CPP backend: set volatile property on atomic instructions.Tim Northover2014-06-131-0/+75
| | | | llvm-svn: 210890
* Reduce verbiage of lit.local.cfg filesAlp Toker2014-06-091-2/+1
| | | | | | We can just split targets_to_build in one place and make it immutable. llvm-svn: 210496
* Begin adding docs and IR-level support for the inalloca attributeReid Kleckner2013-12-191-0/+7
| | | | | | | | | | | | | | | | | | | The inalloca attribute is designed to support passing C++ objects by value in the Microsoft C++ ABI. It behaves the same as byval, except that it always implies that the argument is in memory and that the bytes are never copied. This attribute allows the caller to take the address of an outgoing argument's memory and execute arbitrary code to store into it. This patch adds basic IR support, docs, and verification. It does not attempt to implement any lowering or fix any possibly broken transforms. When this patch lands, a complete description of this feature should appear at http://llvm.org/docs/InAlloca.html . Differential Revision: http://llvm-reviews.chandlerc.com/D2173 llvm-svn: 197645
* [tests] Cleanup initialization of test suffixes.Daniel Dunbar2013-08-161-2/+0
| | | | | | | | | | | | | | | | | - Instead of setting the suffixes in a bunch of places, just set one master list in the top-level config. We now only modify the suffix list in a few suites that have one particular unique suffix (.ml, .mc, .yaml, .td, .py). - Aside from removing the need for a bunch of lit.local.cfg files, this enables 4 tests that were inadvertently being skipped (one in Transforms/BranchFolding, a .s file each in DebugInfo/AArch64 and CodeGen/PowerPC, and one in CodeGen/SI which is now failing and has been XFAILED). - This commit also fixes a bunch of config files to use config.root instead of older copy-pasted code. llvm-svn: 188513
* test commit: remove blank line.Jiong Wang2013-03-141-1/+0
| | | | llvm-svn: 177009
* test commitVictor Oliveira2012-07-181-0/+1
| | | | llvm-svn: 160438
* Continue cleanup of LIT, getting rid of the remaining artifacts from dejagnuEli Bendersky2012-03-251-8/+1
| | | | | | | | | | | | | | * Removed test/lib/llvm.exp - it is no longer needed * Deleted the dg.exp reading code from test/lit.cfg. There are no dg.exp files left in the test suite so this code is no longer required. test/lit.cfg is now much shorter and clearer * Removed a lot of duplicate code in lit.local.cfg files that need access to the root configuration, by adding a "root" attribute to the TestingConfig object. This attribute is dynamically computed to provide the same information as was previously provided by the custom getRoot functions. * Documented the config.root attribute in docs/CommandGuide/lit.pod llvm-svn: 153408
* Replace all instances of dg.exp file with lit.local.cfg, since all tests are ↵Eli Bendersky2012-02-162-5/+13
| | | | | | | | run with LIT now and now Dejagnu. dg.exp is no longer needed. Patch reviewed by Daniel Dunbar. It will be followed by additional cleanup patches. llvm-svn: 150664
* Testcase for commit 149833 (use of an uninitialized variable noticedDuncan Sands2012-02-051-0/+6
| | | | | | by GCC). llvm-svn: 149840
* manually upgrade a bunch of tests to modern syntax, and remove some thatChris Lattner2011-06-171-756/+0
| | | | | | are either unreduced or only test old syntax. llvm-svn: 133228
* fix PR5295 where the .ll parser didn't reject a function after a globalChris Lattner2009-10-251-1/+1
| | | | | | | or global after a function with conflicting names. Update some testcases that were accidentally depending on this behavior. llvm-svn: 85081
* Eliminate more uses of llvm-as and llvm-dis.Dan Gohman2009-09-094-4/+4
| | | | llvm-svn: 81293
* Remove obsolete -f flags.Dan Gohman2009-08-252-2/+2
| | | | llvm-svn: 79992
* Fix code emission for conditional branches.Anton Korobeynikov2009-05-041-0/+28
| | | | | | Patch by Collin Winter! llvm-svn: 70898
* 'The attached patch fixes an issue where llc -march=cpp fails withChris Lattner2009-05-011-0/+13
| | | | | | | "Invalid primitive type" on input containing the x86_fp80 type.' Patch by Collin Winter! llvm-svn: 70610
* Put CPPBackend tests into their own directory and run them only if they'reBill Wendling2008-07-103-0/+768
supported. llvm-svn: 53427
OpenPOWER on IntegriCloud