summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* CodeGen: Simplify consecutive '%' modifiersDavid Majnemer2015-01-111-0/+7
| | | | | | LLVM the consecutive '%' modifiers are redundant, skip them. llvm-svn: 225602
* CodeGen: Simplify consecutive '&' modifiersDavid Majnemer2015-01-111-0/+7
| | | | | | LLVM the consecutive '&' modifiers are redundant, skip them. llvm-svn: 225601
* IR: Add 'distinct' MDNodes to bitcode and assembly (clang)Duncan P. N. Exon Smith2015-01-082-21/+21
| | | | | | | | | Update testcases for LLVM change in r225474 to make `MDNode`s explicitly distinct (when they aren't uniqued). Part of PR22111. llvm-svn: 225475
* R600: Handle amdgcn tripleTom Stellard2015-01-061-1/+1
| | | | | | For now there is no difference between amdgcn and r600. llvm-svn: 225294
* DebugInfo: Provide a less subtle way to set the debug location of simple ret ↵David Blaikie2015-01-021-5/+0
| | | | | | | | instructions un-XFAILing the test XFAIL'd in r225086 after it regressed in r225083. llvm-svn: 225090
* Temporarily XFAIL fallout from r225083 while investigating.David Blaikie2015-01-021-0/+5
| | | | | | | | | | | | Between this behavior and that fixed by r225083/r225000, I'll take the latter over the former for now, but I'm immediately working on understanding/addressing this behavior too. (the fact that the code change in r225083 caused this change in behavior is a bit troubling anyway - given that it looks & claims to be just a preformance thing) llvm-svn: 225086
* [x86] Add the (v)cmpps/pd/ss/sd builtins to match gcc. Use them in the sse ↵Craig Topper2014-12-271-0/+288
| | | | | | | | | | intrinsic files. This still lower to the same intrinsics as before. This is preparation for bounds checking the immediate on the avx version of the builtin so we don't pass illegal immediates into the backend. Since SSE uses a smaller size immediate its not possible to bounds check when using a shared builtin. Rather than creating a clang specific builtin for the different immediate, I decided (after consulting with Chandler) that it was better to match gcc. llvm-svn: 224879
* Adjust the rest of the tests due to r224849.David Majnemer2014-12-261-2/+2
| | | | llvm-svn: 224865
* Update tests due to r224849David Majnemer2014-12-262-2/+2
| | | | | | Inferring nuw caused some clang tests to change their output. llvm-svn: 224851
* Add a triple to try and get this test passing on the ARM bots.Nico Weber2014-12-231-1/+1
| | | | llvm-svn: 224747
* Rename test.cc files to test.cpp.Nico Weber2014-12-221-1/+1
| | | | | | | The lit.cfg files only add .cpp to suffixes, so these tests used to never run, oops. (Also tweak to of these tests in minor ways to make the actually pass.) llvm-svn: 224718
* Fix for PR21915: assert on multidimensional VLA in function arguments.Alexey Bataev2014-12-181-0/+30
| | | | | | | Fixed assertion on type checking for arguments and parameters on function call if arguments are pointers to VLA Differential Revision: http://reviews.llvm.org/D6655 llvm-svn: 224504
* Make sure that arm-linux-gnu is still the apcs-gnu ABI when weEric Christopher2014-12-181-12/+12
| | | | | | | | | | | | use clang -cc1 matching the front end and backend. Fix up a couple of tests that were testing aapcs for arm-linux-gnu. The test that removes the aapcs abi calling convention removes them because the default triple matches what the backend uses for the calling convention there and so it doesn't need to be explicitly stated - see the code in TargetInfo.cpp. llvm-svn: 224491
* CodeGen: implement __emit intrinsicSaleem Abdulrasool2014-12-172-0/+25
| | | | | | | | | | | | | | | For MSVC compatibility, add the `__emit' builtin. This is used in the Windows SDK headers, and must therefore be implemented as a builtin rather than an intrinsic. The `__emit' builtin provides a mechanism to emit a 16-bit opcode instruction into the stream. The value must be a compile time constant expression. No guarantees are made about the CPU and memory states after the execution of the instruction. Due to the unchecked nature of the builtin, only support this on Windows on ARM. llvm-svn: 224438
* [mips] Always clobber $1 for MIPS inline asm.Toma Tabacu2014-12-174-8/+8
| | | | | | | | | | | | | | | | | | | | Summary: Because GCC doesn't use $1 for code generation, inline assembly code can use $1 without having to add it to the clobbers list. LLVM, on the other hand, does not shy away from using $1, and this can cause conflicts with inline assembly which assumes GCC-like code generation. A solution to this problem is to make Clang automatically clobber $1 for all MIPS inline assembly. This is not the optimal solution, but it seems like a necessary compromise, for now. Reviewers: dsanders Reviewed By: dsanders Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6638 llvm-svn: 224428
* Update this testcase for the new metadata assembler syntax.Adrian Prantl2014-12-151-1/+1
| | | | llvm-svn: 224262
* IR: Make metadata typeless in assembly, clang sideDuncan P. N. Exon Smith2014-12-1535-260/+260
| | | | | | Match LLVM changes from r224257. llvm-svn: 224259
* Fixed test/CodeGen/atomic_ops.c for compatibility with hexagon targetAlexey Bataev2014-12-151-3/+3
| | | | llvm-svn: 224231
* Bugfix for Codegen of atomic load/store/other ops.Alexey Bataev2014-12-152-7/+476
| | | | | | | Currently clang fires assertions on x86-64 on any atomic operations for long double operands. Patch fixes codegen for such operations. Differential Revision: http://reviews.llvm.org/D6499 llvm-svn: 224230
* CodeGen: Loads/stores to allocas for atomic ops shouldn't be volatileDavid Majnemer2014-12-121-0/+32
| | | | | | | | | Don't inherit the volatile-ness of the input pointer to the volatile operation for memory allocated on the side. This fixes PR17306. llvm-svn: 224110
* Instead of having -Os/-Oz add OptimizeForSize/MinSize first, and laterPaul Robinson2014-12-111-0/+9
| | | | | | | | | | having OptimizeNone remove them again, just don't add them in the first place if the function already has OptimizeNone. Note that MinSize can still appear due to attributes on different declarations; a future patch will address that. llvm-svn: 224047
* Diagnose attributes 'optnone' and 'minsize' on the same declaration.Paul Robinson2014-12-101-1/+1
| | | | | | | Eventually we'll diagnose them on different declarations, but let's get this part out of the way first. llvm-svn: 223985
* Revert r223980 as it had wrong commit message.Paul Robinson2014-12-101-1/+1
| | | | llvm-svn: 223984
* Rename a couple of preprocessor symbols to be more descriptive. NFC.Paul Robinson2014-12-101-1/+1
| | | | | | Review feedback from recent changes to GetSVN.cmake. llvm-svn: 223980
* No memcpy for copy ctor with -fsanitize-address-field-padding=1Kostya Serebryany2014-12-061-0/+1
| | | | | | | | | | | | | | | | | | | Summary: When -fsanitize-address-field-padding=1 is present don't emit memcpy for copy constructor. Thanks Nico for the extra test case. Test Plan: regression tests Reviewers: thakis, rsmith Reviewed By: rsmith Subscribers: rsmith, cfe-commits Differential Revision: http://reviews.llvm.org/D6515 llvm-svn: 223563
* Have the driver and the target code agree on what the default ABIEric Christopher2014-12-052-5/+5
| | | | | | | | | is for each machine. Fix up darwin tests that were testing for aapcs on armv7-ios when the actual ABI is apcs. Should be no user visible change without -cc1. llvm-svn: 223429
* Add test for __umulhReid Kleckner2014-12-031-12/+34
| | | | llvm-svn: 223319
* Fix invalid calling convention used for libcalls on ARM.Anton Korobeynikov2014-12-021-0/+8
| | | | | | | | | | | | | | | | ARM ABI specifies that all the libcalls use soft FP ABI (even hard FP binaries). These days clang emits _mulsc3 / _muldc3 calls with default (C) calling convention which would be translated into AAPCS_VFP LLVM calling and thus the result of complex multiplication will be bogus. Introduce a way for a target to specify explicitly calling convention for libcalls. Right now this is temporary correctness fix. Ultimately, we'll end with intrinsic for complex multiplication and all calling convention decisions for libcalls will be put into backend. llvm-svn: 223123
* [NVPTX] Fix type error for some builtins in BuiltinsNVPTX.defJustin Holewinski2014-12-021-0/+2
| | | | llvm-svn: 223116
* AArch64: simplify PCS mapping.Tim Northover2014-11-274-23/+18
| | | | | | | | | | | | Now that LLVM can count the registers needed to implement AAPCS rules, we don't need to duplicate that logic here. This means we can drop the explicit padding and also use more natural types in many cases (e.g. "struct { float arr[3]; }" used to end up as "[2 x double]" to avoid holes on the stack. The one wrinkle is that AAPCS va_arg was also using the register counting machinery. But the local replacement isn't too bad. llvm-svn: 222904
* CodeGen: Fix emission of __atomic_compare_exchangeDavid Majnemer2014-11-251-2/+11
| | | | | | We (wrongly) discarded the return value of the call. llvm-svn: 222798
* Update Clang tests that run the LLVM optimizer to reflect the changedChandler Carruth2014-11-251-25/+17
| | | | | | canonicalization in r222748. No interesting functionality changed here. llvm-svn: 222749
* testing: make test use FileCheckTim Northover2014-11-241-1/+4
| | | | | | | The "grep internal | count" was fragile when your source or remote paths could contain the word "internal". llvm-svn: 222685
* Correctly remove OptimizeForSize from functions marked OptimizeNone.Paul Robinson2014-11-241-1/+9
| | | | | | | This allows using __attribute__((optnone)) and the -Os/-Oz options. Fixes PR21604. llvm-svn: 222683
* CodeGen: make i686-windows-itanium more similar to msvcSaleem Abdulrasool2014-11-241-2/+17
| | | | | | | The itanium environment follows the system calling convention for structures. Pass small aggregates via registers. llvm-svn: 222680
* CodeGen: tweak struct ABI handlingSaleem Abdulrasool2014-11-231-0/+27
| | | | | | | | Cygwin and MinGW fail to conform to the underlying system's structure passing ABI. Make the check more precise to ensure that we correctly generate code for the itanium environment. llvm-svn: 222626
* CodeGen: Make atomic operations play nice with address spacesDavid Majnemer2014-11-221-0/+15
| | | | | | | | We were being a little sloppy with our pointer/address space casts. This fixes PR21643. llvm-svn: 222615
* Remove support for undocumented SpecialCaseList entries.Alexey Samsonov2014-11-201-2/+2
| | | | | | | | | | | | | "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
* Revert "[Reassociate] Update test cases due to r222142."Chad Rosier2014-11-194-11/+11
| | | | | | | | | This reverts commit r222144. Commit r222142 is being reverted due to a spec2006/gcc execution-time regression. Update mips-varargs test as well. llvm-svn: 222397
* Allow EmitVAArg() to promote types and use this to fix some N32/N64 vararg ↵Daniel Sanders2014-11-191-17/+149
| | | | | | | | | | | | | | | | | | | | | issues for Mips. Summary: With this patch, passing a va_list to another function and reading 10 int's from it works correctly on a big-endian target. Based on a pair of patches by David Chisnall, one of which I've reworked for the current trunk. Reviewers: theraven, atanasyan Reviewed By: theraven, atanasyan Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6248 llvm-svn: 222339
* This test also requires an aarch64 target.Eric Christopher2014-11-181-0/+1
| | | | llvm-svn: 222268
* Add PIC-level support to Clang.Justin Hibbits2014-11-181-0/+7
| | | | | | | | | | | | | | | | | | Summary: This distinguishes between -fpic and -fPIC now, with the additions in LLVM for PIC level support. Test Plan: No regressions Reviewers: echristo, rafael Reviewed By: rafael Subscribers: rnk, emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D5400 llvm-svn: 222227
* [Reassociate] Update test cases due to r222142.Chad Rosier2014-11-173-10/+10
| | | | llvm-svn: 222144
* Fix IRGen for passing transparent unionsReid Kleckner2014-11-151-7/+12
| | | | | | | | | We have had a test for this for a long time with a FIXME saying what we should be doing. This just does it. Fixes PR21573. llvm-svn: 222074
* This patch fixes couple of bugs for predefined expressionFariborz Jahanian2014-11-141-0/+14
| | | | | | | | | used inside blocks. It fixes a crash in naming code for __func__ etc. when used in a block declared globally. It also brings back old naming convention for predefined expression which was broken. rdar://18961148 llvm-svn: 222065
* Recommit r222044 with a test fix - it does not make sense to huntAnton Korobeynikov2014-11-141-0/+16
| | | | | | for a typedef before arithmetic conversion in all rare corner cases. llvm-svn: 222049
* Again revert r222044 to resolve darwin objc test fails.Anton Korobeynikov2014-11-141-16/+0
| | | | llvm-svn: 222047
* Follow-up to D6217Anton Korobeynikov2014-11-141-0/+16
| | | | | | | | | | | | | | | | | Summary: Ok, here is somewhat addition to D6217 aiming to preserve old darwin behavior wrt the typedefed types. The actual change to SemaChecking turned out to be pretty gross, in particular: 1. We need to extract the typedef'ed type for proper diagnostics 2. We need to walk over paren expressions as well Reviewers: chandlerc, rsmith Reviewed By: rsmith Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6256 llvm-svn: 222044
* [PowerPC] Enable vec_perm for long long and double vector types for VSXBill Schmidt2014-11-141-0/+21
| | | | | | | | | | VSX makes the "vector long long" and "vector double" types available. This patch enables the vec_perm interface for these types. The same builtin is generated regardless of the specified type, so no additional work or testing is needed in the back end. Tests are added to ensure this builtin is generated by the front end. llvm-svn: 221988
* [PowerPC] Add VSX builtins for vec_divBill Schmidt2014-11-141-0/+7
| | | | | | | | | | | | This patch adds builtin support for xvdivdp and xvdivsp, along with a new test case. The builtins are accessed using vec_div in altivec.h. Builtins are listed (mostly) alphabetically there, so inserting these changed the line numbers for deprecation warnings tested in test/Headers/altivec-intrin.c. There is a companion patch for LLVM. llvm-svn: 221984
OpenPOWER on IntegriCloud