summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
* When the target-independent DAGCombiner inferred a higher alignment for a load,Owen Anderson2013-02-052-4/+5
| | | | | | | | | | | it would replace the load with one with the higher alignment. However, it did not place the new load in the worklist, which prevented later DAG combines in the same phase (for example, target-specific combines) from ever seeing it. This patch corrects that oversight, and updates some tests whose output changed due to slightly different DAGCombine outputs. llvm-svn: 174343
* Added LLVM Asm/Bitcode Reader/Writer support for new IR keyword ↵Michael Gottesman2013-02-051-0/+5
| | | | | | externally_initialized. llvm-svn: 174340
* [Stack Alignment] emit warning instead of a hard errorManman Ren2013-02-041-2/+2
| | | | | | | | | | | Per discussion in rdar://13127907, we should emit a hard error only if people write code where the requested alignment is larger than achievable and assumes the low bits are zeros. A warning should be good enough when we are not sure if the source code assumes the low bits are zeros. rdar://13127907 llvm-svn: 174336
* Hexagon: Add V4 combine instructions and some more Def Pats for V2.Jyotsna Verma2013-02-042-1/+56
| | | | llvm-svn: 174331
* Disable a couple more vector splat optimizations on PPC.Benjamin Kramer2013-02-041-1/+41
| | | | | | | I didn't see those because the test case used "not grep". FileCheck the test and XFAIL it, preserving the old optimization, so this can be fixed eventually. llvm-svn: 174330
* X86: Open up some opportunities for constant folding by postponing shift ↵Benjamin Kramer2013-02-041-0/+10
| | | | | | | | lowering. Fixes PR15141. llvm-svn: 174327
* SelectionDAG: Teach FoldConstantArithmetic how to deal with vectors.Benjamin Kramer2013-02-044-7/+7
| | | | | | | | | | | | | | | | | This required disabling a PowerPC optimization that did the following: input: x = BUILD_VECTOR <i32 16, i32 16, i32 16, i32 16> lowered to: tmp = BUILD_VECTOR <i32 8, i32 8, i32 8, i32 8> x = ADD tmp, tmp The add now gets folded immediately and we're back at the BUILD_VECTOR we started from. I don't see a way to fix this currently so I left it disabled for now. Fix some trivially foldable X86 tests too. llvm-svn: 174325
* Update debugging test for change in expected metadata.Tim Northover2013-02-041-6/+16
| | | | llvm-svn: 174321
* [DebugInfo] remove more node indirection (this time from the subprogram's ↵David Blaikie2013-02-042-12/+6
| | | | | | variable lists) llvm-svn: 174305
* ARM cost model: Penalize insertelement into D subregistersArnold Schwaighofer2013-02-042-0/+52
| | | | | | | | | | | Swift has a renaming dependency if we load into D subregisters. We don't have a way of distinguishing between insertelement operations of values from loads and other values. Therefore, we are pessimistic for now (The performance problem showed up in example 14 of gcc-loops). radar://13096933 llvm-svn: 174300
* Remove the (apparently) unnecessary debug info metadata indirection.David Blaikie2013-02-0243-200/+102
| | | | | | | | | | The main lists of debug info metadata attached to the compile_unit had an extra layer of metadata nodes they went through for no apparent reason. This patch removes that (& still passes just as much of the GDB 7.5 test suite). If anyone can show evidence as to why these extra metadata nodes are there I'm open to reverting this patch & documenting why they're there. llvm-svn: 174266
* Start static relocation implementation for mips16.Reed Kotler2013-02-021-0/+7
| | | | | | This checkin makes hello world work. llvm-svn: 174264
* Removing ssp and uwtable from the testcaseManman Ren2013-02-021-1/+1
| | | | llvm-svn: 174259
* rdar://13126763Shuxin Yang2013-02-021-0/+42
| | | | | | | Fix a bug in DAGCombine. The symptom is mistakenly optimizing expression "x + x*x" into "x * 3.0". llvm-svn: 174239
* [Dwarf] avoid emitting multiple AT_const_value for static memebers.Manman Ren2013-02-011-0/+63
| | | | | | | | Testing case is reduced from MultiSource/BenchMarks/Prolangs-C++/deriv1. rdar://problem/13071590 llvm-svn: 174235
* LLVM enablement for some older PowerPC CPUsBill Schmidt2013-02-011-0/+14
| | | | llvm-svn: 174230
* Add a testcase for some past-the-end address subtleties.Dan Gohman2013-02-011-0/+77
| | | | llvm-svn: 174210
* Two changes relevant to LEA and x32:David Sehr2013-02-012-0/+41
| | | | | | | | | 1) allows the use of RIP-relative addressing in 32-bit LEA instructions under x86-64 (ILP32 and LP64) 2) separates the size of address registers in 64-bit LEA instructions from control by ILP32/LP64. llvm-svn: 174208
* Hexagon: Test case to confirm generation of indexed loads with zero offset.Jyotsna Verma2013-02-011-0/+70
| | | | llvm-svn: 174196
* InstSimplify: stripAndComputeConstantOffsets can be called with vectors of ↵Benjamin Kramer2013-02-011-0/+11
| | | | | | | | | | pointers too. Prepare it for vectors of pointers and handle simple cases. We don't handle complicated cases because accumulateConstantOffset bails on pointer vectors. Fixes selfhost on i386. llvm-svn: 174179
* Add explicit triples to AArch64 testsTim Northover2013-02-0176-83/+83
| | | | | | | | Only Linux is supported at the moment, and other platforms quickly fault. As a result these tests would fail on non-Linux hosts. It may be worth making the tests more generic again as more platforms are supported. llvm-svn: 174170
* Revert r174152. The shift amount may overflow and in that case this ↵Nadav Rotem2013-02-011-20/+0
| | | | | | transformation is illegal. llvm-svn: 174156
* Optimize shift lefts of a constant by a value plus constant into a single shift.Nadav Rotem2013-02-011-0/+20
| | | | llvm-svn: 174152
* Rewrite instsimplify's handling if icmp on pointer values to remove theDan Gohman2013-02-011-0/+22
| | | | | | | | | | | | remaining use of AliasAnalysis concepts such as isIdentifiedObject to prove pointer inequality. @external_compare in test/Transforms/InstSimplify/compare.ll shows a simple case where a noalias argument can be equal to a global variable address, and while AliasAnalysis can get away with saying that these pointers don't alias, instsimplify cannot say that they are not equal. llvm-svn: 174122
* An alloca can be equal to an argument. It can't *alias* an alloca, but it couldDan Gohman2013-01-311-0/+13
| | | | | | | be equal, since there's nothing preventing a caller from correctly predicting the stack location of an alloca. llvm-svn: 174119
* Remove the AttrBuilder form of the Attribute::get creators.Bill Wendling2013-01-312-29/+29
| | | | | | | | | | | | | The AttrBuilder is for building a collection of attributes. The Attribute object holds only one attribute. So it's not really useful for the Attribute object to have a creator which takes an AttrBuilder. This has two fallouts: 1. The AttrBuilder no longer holds its internal attributes in a bit-mask form. 2. The attributes are now ordered alphabetically (hence why the tests have changed). llvm-svn: 174110
* R600: Fold clamp, neg, absTom Stellard2013-01-311-2/+1
| | | | | | | Patch by: Vincent Lejeune Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 174099
* Linker: correctly link in dbg.declareManman Ren2013-01-312-0/+134
| | | | | | | | | | | | | | | | | | | This is a re-worked version of r174048. Given source IR: call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !14), !dbg !15 we used to generate call void @llvm.dbg.declare(metadata !27, metadata !28), !dbg !29 !27 = metadata !{null} With this patch, we will correctly generate call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !27), !dbg !28 Looking up %argc.addr in ValueMap will return null, since %argc.addr is already correctly set up, we can use identity mapping. rdar://problem/13089880 llvm-svn: 174093
* When lowering memcpys to loads and stores, make sure we don't promote alignmentsLang Hames2013-01-311-25/+52
| | | | | | past the natural stack alignment. llvm-svn: 174085
* [MC] bundle alignment: prevent padding instructions from crossing bundle ↵Derek Schuff2013-01-312-2/+108
| | | | | | boundaries llvm-svn: 174067
* Add AArch64 as an experimental target.Tim Northover2013-01-31107-0/+22769
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for AArch64 (ARM's 64-bit architecture) to LLVM in the "experimental" category. Currently, it won't be built unless requested explicitly. This initial commit should have support for: + Assembly of all scalar (i.e. non-NEON, non-Crypto) instructions (except the late addition CRC instructions). + CodeGen features required for C++03 and C99. + Compilation for the "small" memory model: code+static data < 4GB. + Absolute and position-independent code. + GNU-style (i.e. "__thread") TLS. + Debugging information. The principal omission, currently, is performance tuning. This patch excludes the NEON support also reviewed due to an outbreak of batshit insanity in our legal department. That will be committed soon bringing the changes to precisely what has been approved. Further reviews would be gratefully received. llvm-svn: 174054
* Made the min-trip-count-switch test X86-specific to avoidPekka Jaaskelainen2013-01-311-0/+0
| | | | | | breakage with builds without X86-support. llvm-svn: 174052
* Revert r173946. This breaks compilation of googletest with ClangAlexey Samsonov2013-01-312-134/+0
| | | | llvm-svn: 174048
* Filecheckized 2x tests in SimplifyCFG and removed their date prefix to fit ↵Michael Gottesman2013-01-312-4/+4
| | | | | | with current llvm style for test names. llvm-svn: 174011
* Check and allow floating point registers to select the size of theEric Christopher2013-01-311-0/+42
| | | | | | | register for inline asm. This conforms to how gcc allows for effective casting of inputs into gprs (fprs is already handled). llvm-svn: 174008
* Replace some more greps with FileChecks in testsEli Bendersky2013-01-313-22/+30
| | | | llvm-svn: 174006
* Rewrite this test properly with a FileCheck instead of grepsEli Bendersky2013-01-311-8/+10
| | | | llvm-svn: 173997
* Fix ConstantFold's folding of icmp instructions to recognize that,Dan Gohman2013-01-311-0/+23
| | | | | | | for example, a one-past-the-end pointer from one global variable may be equal to the base pointer of another global variable. llvm-svn: 173995
* PPC QPX requires a 32-byte aligned stackHal Finkel2013-01-301-0/+23
| | | | | | | On systems which support the QPX vector instructions, the stack must be 32-byte aligned. llvm-svn: 173993
* Forgot the test case before.Evan Cheng2013-01-301-0/+40
| | | | llvm-svn: 173988
* Add definitions for the PPC a2q core marked as having QPX availableHal Finkel2013-01-301-0/+10
| | | | | | | | This is the first commit of a large series which will add support for the QPX vector instruction set to the PowerPC backend. This instruction set is used on the IBM Blue Gene/Q supercomputers. llvm-svn: 173973
* Linker: correctly link in dbg.declareManman Ren2013-01-302-0/+134
| | | | | | | | | | | | | | | | Given source IR: call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !14), !dbg !15 we used to generate call void @llvm.dbg.declare(metadata !27, metadata !28), !dbg !29 !27 = metadata !{null} With this patch, we will correctly generate call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !27), !dbg !28 Looking up %argc.addr in ValueMap will return null, since %argc.addr is already correctly set up, we can use identity mapping. llvm-svn: 173946
* Add a special ARM trap encoding for NaCl.Eli Bendersky2013-01-302-4/+39
| | | | | | | | More details in this thread: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130128/163783.html Patch by JF Bastien llvm-svn: 173943
* Add missing header and test cases for r173939.Logan Chien2013-01-304-0/+211
| | | | llvm-svn: 173941
* InstCombine: canonicalize sext-and --> selectNadav Rotem2013-01-303-14/+24
| | | | | | | | sext-not-and --> select. Patch by Muhammad Tauqir Ahmad. llvm-svn: 173901
* build: add --with-python optionSaleem Abdulrasool2013-01-301-3/+3
| | | | | | | | | | | This adds a new --with-python option to allow configuration of the python binary for building. If not specified, $PATH will be searched for common python binary names (python, python2, python3). If specified, and the path is not executable, it will attempt to search $PATH. Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org> Reviewed-by: Eric Christopher <echristo@gmail.com>, Daniel Dunbar <daniel@zuster.org> llvm-svn: 173890
* This patch implements runtime ARM specificJack Carter2013-01-302-1/+13
| | | | | | | | setting of ELF header e_flags. Contributer: Jack Carter llvm-svn: 173885
* This patch implements runtime Mips specificJack Carter2013-01-301-0/+55
| | | | | | | | setting of ELF header e_flags. Contributer: Jack Carter llvm-svn: 173884
* This patch reworks how llvm targets set Jack Carter2013-01-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | and update ELF header e_flags. Currently gathering information such as symbol, section and data is done by collecting it in an MCAssembler object. From MCAssembler and MCAsmLayout objects ELFObjectWriter::WriteObject() forms and streams out the ELF object file. This patch just adds a few members to the MCAssember class to store and access the e_flag settings. It allows for runtime additions to the e_flag by assembler directives. The standalone assembler can get to MCAssembler from getParser().getStreamer().getAssembler(). This patch is the generic infrastructure and will be followed by patches for ARM and Mips for their target specific use. Contributer: Jack Carter llvm-svn: 173882
* [mips] Test case for r173862.Akira Hatanaka2013-01-302-0/+164
| | | | | | Patch by Sasa Stankovic. llvm-svn: 173863
OpenPOWER on IntegriCloud