summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Use the do-while(0) thing for this #define.Bill Wendling2013-02-051-8/+10
| | | | llvm-svn: 174347
* When the target-independent DAGCombiner inferred a higher alignment for a load,Owen Anderson2013-02-051-2/+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-056-5/+20
| | | | | | externally_initialized. llvm-svn: 174340
* [Stack Alignment] emit warning instead of a hard errorManman Ren2013-02-041-3/+3
| | | | | | | | | | | 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
* Initial cleanups of the param-attribute code in the bitcode reader/writer.Bill Wendling2013-02-043-48/+50
| | | | | | | | | Rename the PARAMATTR_CODE_ENTRY to PARAMATTR_CODE_ENTRY_OLD. It will be replaced by another encoding. Keep around the current LLVM attribute encoder/decoder code, but move it to the bitcode directories so that no one's tempted to use them. llvm-svn: 174335
* Hexagon: Add V4 combine instructions and some more Def Pats for V2.Jyotsna Verma2013-02-043-8/+135
| | | | llvm-svn: 174331
* Disable a couple more vector splat optimizations on PPC.Benjamin Kramer2013-02-041-2/+4
| | | | | | | 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
* Fix some abuses of StringRefTim Northover2013-02-041-3/+4
| | | | | | We were taking a StringRef to a temporary result, which can go horribly wrong. llvm-svn: 174328
* X86: Open up some opportunities for constant folding by postponing shift ↵Benjamin Kramer2013-02-041-4/+2
| | | | | | | | lowering. Fixes PR15141. llvm-svn: 174327
* X86: Simplify code. No functionality change.Benjamin Kramer2013-02-041-19/+5
| | | | llvm-svn: 174326
* SelectionDAG: Teach FoldConstantArithmetic how to deal with vectors.Benjamin Kramer2013-02-042-44/+120
| | | | | | | | | | | | | | | | | 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
* Give explicit suffix to integer constant over 32-bits.Tim Northover2013-02-041-1/+1
| | | | llvm-svn: 174324
* More MSan/ASan annotations.Evgeniy Stepanov2013-02-043-2/+10
| | | | | | | | | | | | | | This change lets us bootstrap LLVM/Clang under ASan and MSan. It contains fixes for 2 issues: - X86JIT reads return address from stack, which MSan does not know is initialized. - bugpoint tests run binaries with RLIMIT_AS. This does not work with certain Sanitizers. We are no longer including config.h in Compiler.h with this change. llvm-svn: 174306
* [DebugInfo] remove more node indirection (this time from the subprogram's ↵David Blaikie2013-02-042-15/+4
| | | | | | variable lists) llvm-svn: 174305
* PR15149: crash when printing debug info metadata containing an invalid ↵David Blaikie2013-02-041-2/+2
| | | | | | language spec llvm-svn: 174304
* ARM cost model: Penalize insertelement into D subregistersArnold Schwaighofer2013-02-041-0/+13
| | | | | | | | | | | 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
* PPCDarwinAsmPrinter::EmitStartOfAsmFile(): Add checking range in ↵NAKAMURA Takumi2013-02-041-1/+4
| | | | | | CPUDirectives[]. llvm-svn: 174298
* PPCDarwinAsmPrinter::EmitStartOfAsmFile(): Add possible elements in ↵NAKAMURA Takumi2013-02-041-0/+5
| | | | | | CPUDirectives[]. llvm-svn: 174297
* Added instance variable/initializers/getter/setters for new keyword ↵Michael Gottesman2013-02-031-5/+10
| | | | | | | | | | | | | | externally initialized to GlobalVariable. No *TRUE* functionality change. I am going to add in the actual test cases with the actual functionality changes in a later patch because I want to include some test cases. To be clear when I say no *TRUE* functionality change I mean that this patch (like it says in the title) only contains getters/setters and sets up a default initial value of the instance variable to false so that this patch does not affect any other uses of Global Variable.h. llvm-svn: 174295
* use GEP::accumulateConstantOffset() to replace custom written code to ↵Nuno Lopes2013-02-031-27/+2
| | | | | | compute GEP offset llvm-svn: 174279
* [Object][Archive] Improve performance.Michael J. Spencer2013-02-031-98/+10
| | | | | | | | | | | | Improve performance of iterating over children and accessing the member file buffer by caching the file size and moving code out to the header. This also makes getBuffer return a StringRef instead of a MemoryBuffer. Both fixing a memory leak and removing a malloc. This takes getBuffer from ~10% of the time in lld to unmeasurable. llvm-svn: 174272
* [Support] Add LLVM_IS_UNALIGNED_ACCESS_FAST.Michael J. Spencer2013-02-031-4/+16
| | | | llvm-svn: 174271
* Remove the (apparently) unnecessary debug info metadata indirection.David Blaikie2013-02-022-21/+8
| | | | | | | | | | 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-022-1/+30
| | | | | | This checkin makes hello world work. llvm-svn: 174264
* Remove AttrBuilder::Raw().Bill Wendling2013-02-021-25/+18
| | | | llvm-svn: 174251
* Use the AttributeSet's iterators.Bill Wendling2013-02-022-5/+22
| | | | | | | Use the AttributeSet's iterators in AttrBuilder::hasAttributes() when determining of the intersection of the AttrBuilder and AttributeSet is non-null. llvm-svn: 174250
* Revert accidental commit (ran svn commit from wrong directory).Nick Lewycky2013-02-021-61/+7
| | | | llvm-svn: 174241
* This patch makes "&Cls::purevfn" not an odr use. This isn't what the standardNick Lewycky2013-02-021-7/+61
| | | | | | | | | says, but that's a defect (to be filed). "Cls::purevfn()" is still an odr use. Also fixes a bug in the previous patch that caused us to not mark the function referenced just because we didn't want to mark it odr used. llvm-svn: 174240
* rdar://13126763Shuxin Yang2013-02-021-13/+20
| | | | | | | Fix a bug in DAGCombine. The symptom is mistakenly optimizing expression "x + x*x" into "x * 3.0". llvm-svn: 174239
* Correct indentation for dumping LexicalScope.Manman Ren2013-02-021-8/+6
| | | | llvm-svn: 174237
* [Dwarf] avoid emitting multiple AT_const_value for static memebers.Manman Ren2013-02-011-3/+9
| | | | | | | | Testing case is reduced from MultiSource/BenchMarks/Prolangs-C++/deriv1. rdar://problem/13071590 llvm-svn: 174235
* Add notes about future PowerPC featuresBill Schmidt2013-02-011-0/+17
| | | | llvm-svn: 174232
* LLVM enablement for some older PowerPC CPUsBill Schmidt2013-02-012-0/+25
| | | | llvm-svn: 174230
* Change the AttributeImpl to hold a single Constant* for the values.Bill Wendling2013-02-012-27/+23
| | | | | | This Constant could be an aggregate to represent multiple values. llvm-svn: 174228
* This patch aims to improve compile time performance by increasingPreston Gurd2013-02-011-13/+13
| | | | | | | | | | | | | the SCEV vector size in LoopStrengthReduce. It is observed that the BaseRegs vector size is 4 in most cases, and elements are frequently copied when it is initialized as SmallVector<const SCEV *, 2> BaseRegs. Our benchmark results show that the compilation time performance improved by ~0.5%. Patch by Wan Xiaofei. llvm-svn: 174219
* Two changes relevant to LEA and x32:David Sehr2013-02-013-3/+17
| | | | | | | | | 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
* Fix errant fallthrough in the generation of the lifetime markers.Nadav Rotem2013-02-011-0/+1
| | | | | | Found by Alexander Kornienko. llvm-svn: 174207
* Fix misplaced 'break'.Jim Grosbach2013-02-011-3/+3
| | | | llvm-svn: 174205
* Use a continue to simplify loop and reduce indentation. No functional change.Chad Rosier2013-02-011-24/+25
| | | | llvm-svn: 174198
* Replace LDriu*[bhdw]_indexed_V4 instructions with "def Pats".Jyotsna Verma2013-02-013-504/+33
| | | | llvm-svn: 174193
* Add appropriate TSFlags to the instructions that must be always extended.Jyotsna Verma2013-02-011-148/+147
| | | | llvm-svn: 174186
* InstSimplify: stripAndComputeConstantOffsets can be called with vectors of ↵Benjamin Kramer2013-02-011-10/+18
| | | | | | | | | | 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
* Remove currently unused register decoder from AArch64.Tim Northover2013-02-011-14/+0
| | | | | | This should fix a warning when building this backend. llvm-svn: 174177
* Revert r174152. The shift amount may overflow and in that case this ↵Nadav Rotem2013-02-011-6/+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/+6
| | | | llvm-svn: 174152
* Remove some dead code, improve some asserts, and other assorted changes. No ↵Bill Wendling2013-02-012-29/+13
| | | | | | functionality change. llvm-svn: 174132
* Add a comment explaining an unavailable optimization.Dan Gohman2013-02-011-0/+28
| | | | llvm-svn: 174131
* Remove one of the odious 'Raw' methods.Bill Wendling2013-02-012-13/+3
| | | | llvm-svn: 174130
* Use iterators instead of relying upon a bitmask of attributes to remove ↵Bill Wendling2013-02-011-11/+17
| | | | | | attributes from an AttrBuilder. llvm-svn: 174123
* Rewrite instsimplify's handling if icmp on pointer values to remove theDan Gohman2013-02-011-56/+88
| | | | | | | | | | | | 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
OpenPOWER on IntegriCloud