summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Remove unused argument from a multiclass.Craig Topper2013-01-011-5/+3
| | | | llvm-svn: 171340
* Merge intrinsic instruction definitions for SSE and AVX versions of RCPPS ↵Craig Topper2013-01-011-30/+34
| | | | | | and RSQRTPS. llvm-svn: 171339
* Remove 2 unused multiclasses.Craig Topper2013-01-011-26/+0
| | | | llvm-svn: 171338
* Merge AVX/SSE instruction definitions for SQRTPS/PD, RSQRTPS, RCPPS. No ↵Craig Topper2013-01-011-47/+58
| | | | | | funcitonal change intended. llvm-svn: 171337
* Use packed instead of scalar itineraries for SSE1/2 SQRTPS/PD, RCPPS, and ↵Craig Topper2012-12-311-6/+6
| | | | | | RSQRTPS. VEX-encoded forms already use packed. llvm-svn: 171336
* Remove an unused method on Program.Chandler Carruth2012-12-312-35/+0
| | | | | | | I'm simplifying this interface as much as I can before merging it with the new process interface. llvm-svn: 171334
* Remove an unused method on the Program class.Chandler Carruth2012-12-312-10/+0
| | | | llvm-svn: 171332
* Go ahead and get rid of the old page size interface and convert all theChandler Carruth2012-12-314-19/+11
| | | | | | | users over to the new one. No sense maintaining this "compatibility" layer it seems. llvm-svn: 171331
* Flesh out a page size accessor in the new API.Chandler Carruth2012-12-313-12/+21
| | | | | | | | Implement the old API in terms of the new one. This simplifies the implementation on Windows which can now re-use the self_process's once initialization. llvm-svn: 171330
* Remove an unused function in the old Process interface.Chandler Carruth2012-12-312-28/+0
| | | | llvm-svn: 171327
* reimplement GetPointerBaseWithConstantOffset().Nuno Lopes2012-12-311-31/+21
| | | | | | | The new code is an improved copy of the code I deleted from Analysis/Loads.cpp. One less compute-constant-gep-offset implementation. yay :) llvm-svn: 171326
* recommit r171298 (add support for PHI nodes to ObjectSizeOffsetVisitor). ↵Nuno Lopes2012-12-311-11/+26
| | | | | | Hopefully with bugs corrected now. llvm-svn: 171325
* Revert "add support for PHI nodes to ObjectSizeOffsetVisitor"Benjamin Kramer2012-12-311-14/+3
| | | | | | This reverts r171298. Breaks clang selfhost. llvm-svn: 171318
* Add extra CHECK to make sure that 'or' instruction was replaced.Jakub Staszak2012-12-311-0/+2
| | | | | | Also add an assert to avoid confusion in the code where is known that C1 <= C2. llvm-svn: 171310
* revert r171306, since we cannot compare APInts with different bitwidthsNuno Lopes2012-12-311-1/+1
| | | | llvm-svn: 171308
* use ValueTracking's GetPointerBaseWithConstantOffset() function instead of a ↵Nuno Lopes2012-12-311-36/+8
| | | | | | local implementation llvm-svn: 171307
* minor code simplificationNuno Lopes2012-12-311-1/+1
| | | | llvm-svn: 171306
* add support for GlobalAlias to ObjectSizeOffsetVisitorNuno Lopes2012-12-311-0/+9
| | | | llvm-svn: 171303
* add support for PHI nodes to ObjectSizeOffsetVisitorNuno Lopes2012-12-311-3/+14
| | | | llvm-svn: 171298
* Add some comparison operators to compare the Attribute object with the ↵Bill Wendling2012-12-311-2/+10
| | | | | | AttrKind value. llvm-svn: 171294
* Switch this code to a more idiomatic double using namespace directive.Chandler Carruth2012-12-313-6/+3
| | | | | | | | Fix a truly odd namespace qualifier that was flat out wrong in the process. The fully qualified namespace would have been llvm::sys::TimeValue, llvm::TimeValue makes no sense. llvm-svn: 171292
* Delete a cut/paste-o from r171290. Very sorry about the noise.Chandler Carruth2012-12-311-1/+0
| | | | llvm-svn: 171291
* Suppress a MSVC warning complaining about the code working as intended.Chandler Carruth2012-12-311-0/+13
| | | | llvm-svn: 171290
* Begin sketching out the process interface.Chandler Carruth2012-12-313-1/+33
| | | | | | | | | | | | | | | | | | | | | | | The coding style used here is not LLVM's style because this is modeled after a Boost interface and thus done in the style of a candidate C++ standard library interface. I'll probably end up proposing it as a standard C++ library if it proves to be reasonably portable and useful. This is just the most basic parts of the interface -- getting the process ID out of it. However, it helps sketch out some of the boiler plate such as the base class, derived class, shared code, and static factory function. It also introduces a unittest so that I can incrementally ensure this stuff works. However, I've not even compiled this code for Windows yet. I'll try to fix any Windows fallout from the bots, and if I can't fix it I'll revert and get someone on Windows to help out. There isn't a lot more that is mandatory, so soon I'll switch to just stubbing out the Windows side and get Michael Spencer to help with implementation as he can test it directly. llvm-svn: 171289
* Fix LICM's memory promotion optimization to preserve TBAA tags whenChris Lattner2012-12-311-6/+18
| | | | | | | promoting a store in a loop. This was noticed when working on PR14753, but isn't directly related. llvm-svn: 171281
* teach instcombine to preserve TBAA tag when merging two stores, part ofChris Lattner2012-12-311-0/+7
| | | | | | PR14753 llvm-svn: 171279
* Grammo.Jakub Staszak2012-12-311-1/+1
| | | | llvm-svn: 171272
* Remove the getAttributesAtIndex and getNumAttrs methods in favor of using ↵Bill Wendling2012-12-313-21/+7
| | | | | | the getAttrSomewhere predicate. This prevents the uses of 'Attribute' as a collection of attributes. llvm-svn: 171271
* Transform (A == C1 || A == C2) into (A & ~(C1 ^ C2)) == C1Jakub Staszak2012-12-311-0/+12
| | | | | | | if C1 and C2 differ only with one bit. Fixes PR14708. llvm-svn: 171270
* Support ppcf128 in SelectionDAG::getConstantFPHal Finkel2012-12-301-1/+2
| | | | | | | | Fixes pr14751. Patch by Kai; Thanks! llvm-svn: 171261
* convert a bunch of callers from DataLayout::getIndexedOffset() to ↵Nuno Lopes2012-12-308-83/+30
| | | | | | | | | GEP::accumulateConstantOffset(). The later API is nicer than the former, and is correct regarding wrap-around offsets (if anyone cares). There are a few more places left with duplicated code, which I'll remove soon. llvm-svn: 171259
* Use the predicate methods off of AttributeSet instead of Attribute.Bill Wendling2012-12-307-29/+23
| | | | llvm-svn: 171257
* Remove the Function::getRetAttributes method in favor of using the ↵Bill Wendling2012-12-305-21/+18
| | | | | | AttributeSet accessor method. llvm-svn: 171256
* Remove Function::getParamAttributes and use the AttributeSet accessor ↵Bill Wendling2012-12-305-25/+25
| | | | | | methods instead. llvm-svn: 171255
* Remove the Function::getFnAttributes method in favor of using the AttributeSetBill Wendling2012-12-3037-99/+160
| | | | | | | | | directly. This is in preparation for removing the use of the 'Attribute' class as a collection of attributes. That will shift to the AttributeSet class instead. llvm-svn: 171253
* s/hasAttribute/contains/g to be more consistent with other method names.Bill Wendling2012-12-302-3/+3
| | | | llvm-svn: 171252
* LoopVectorizer: Fix a bug in the code that updates the loop exiting block.Nadav Rotem2012-12-301-0/+13
| | | | | | | | | LCSSA PHIs may have undef values. The vectorizer updates values that are used by outside users such as PHIs. The bug happened because undefs are not loop values. This patch handles these PHIs. PR14725 llvm-svn: 171251
* Add a few more c'tors:Bill Wendling2012-12-302-5/+29
| | | | | | | | | | | | | | | * One that accepts a single Attribute::AttrKind. * One that accepts an Attribute::AttrKind plus a list of values. This is for attributes defined like this: #1 = attributes { align = 4 } * One that accepts a string, for target-specific attributes like this: #2 = attributes { "cpu=cortex-a8" } llvm-svn: 171249
* Add a few (as yet unused) query methods to determine if the attribute that'sBill Wendling2012-12-302-0/+31
| | | | | | | stored here is of a certain kind. This is in preparation for when an Attribute object represents a single attribute, instead of a bitmask of attributes. llvm-svn: 171247
* Uniquify the AttributeImpl based on the Constant pointer, since those areBill Wendling2012-12-302-5/+3
| | | | | | | | | already uniquified. Note: This will be expanded in the future to add more than just one pointer value. llvm-svn: 171245
* s/Raw/getBitMask/g to be more in line with current naming conventions. This ↵Bill Wendling2012-12-304-20/+21
| | | | | | method won't be sticking around. llvm-svn: 171244
* Remove intrinsic specific instructions for (V)SQRTPS/PD. Instead lower to ↵Craig Topper2012-12-293-26/+7
| | | | | | target-independent ISD nodes and use the existing patterns for those. llvm-svn: 171237
* Merge similar functionality using a nested switch.Craig Topper2012-12-291-8/+39
| | | | llvm-svn: 171229
* Remove intrinsic specific instructions for SSE/SSE2/AVX floating point ↵Craig Topper2012-12-293-74/+29
| | | | | | max/min instructions. Lower them to target specific nodes and use those patterns instead. This also allows them to be commuted if UnsafeFPMath is enabled. llvm-svn: 171227
* Simplify code, no functionality change.Jakub Staszak2012-12-291-19/+14
| | | | llvm-svn: 171226
* Delete executive bit on ./lib/Target/Hexagon/HexagonAsmPrinter.h.Jakub Staszak2012-12-291-0/+0
| | | | llvm-svn: 171225
* Use a 'Constant' object instead of a bit field to store the attribute data.Bill Wendling2012-12-292-8/+19
| | | | llvm-svn: 171221
* Use the accessor method instead of the raw ivar to get the bits.Bill Wendling2012-12-291-5/+5
| | | | llvm-svn: 171220
* Nuke some dead code that snuck in some how. I thought I had alreadyChandler Carruth2012-12-281-5/+0
| | | | | | | deleted this, but apparantly not. Charmingly, Clang didn't warn on it but GCC did. llvm-svn: 171197
* Fix a stunning oversight in the inline cost analysis. It was neverChandler Carruth2012-12-281-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | propagating one of the values it simplified to a constant across a myriad of instructions. Notably, ptrtoint instructions when we had a constant pointer (say, 0) didn't propagate that, blocking a massive number of down-stream optimizations. This was uncovered when investigating why we fail to inline and delete the boilerplate in: void f() { std::vector<int> v; v.push_back(1); } It turns out most of the efforts I've made thus far to improve the analysis weren't making it far purely because of this. After this is fixed, the store-to-load forwarding patch enables LLVM to optimize the above to an empty function. We still can't nuke a second push_back, but for different reasons. There is a very real chance this will cause somewhat noticable changes in inlining behavior, so please let me know if you see regressions (or improvements!) because of this patch. llvm-svn: 171196
OpenPOWER on IntegriCloud