summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* recommit r171298 (add support for PHI nodes to ObjectSizeOffsetVisitor). ↵Nuno Lopes2012-12-313-12/+155
| | | | | | Hopefully with bugs corrected now. llvm-svn: 171325
* [AlignOf] Add AlignedCharArray and refactor AlignedCharArrayUnion.Michael J. Spencer2012-12-312-74/+107
| | | | | | | This adds AlignedCharArray<Alignment, Size>. A templated struct that contains a member named buffer of type char[Size] that is aligned to Alignment. llvm-svn: 171319
* Revert "add support for PHI nodes to ObjectSizeOffsetVisitor"Benjamin Kramer2012-12-312-68/+3
| | | | | | This reverts r171298. Breaks clang selfhost. llvm-svn: 171318
* Add extra CHECK to make sure that 'or' instruction was replaced.Jakub Staszak2012-12-312-0/+3
| | | | | | Also add an assert to avoid confusion in the code where is known that C1 <= C2. llvm-svn: 171310
* Fix bits check in ELFObjectFile::isSectionZeroInit().Rafael Espindola2012-12-312-5/+2
| | | | | | | | Fixes PR14723. Patch by Sami Liedes! llvm-svn: 171309
* 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
* Use the generic dump template. Extracted from a patch by Sami Liedes.Rafael Espindola2012-12-311-53/+19
| | | | llvm-svn: 171305
* Dump sections. Extracted from a patch by Sami Liedes.Rafael Espindola2012-12-312-0/+94
| | | | llvm-svn: 171304
* add support for GlobalAlias to ObjectSizeOffsetVisitorNuno Lopes2012-12-312-0/+10
| | | | llvm-svn: 171303
* Print a header above the symbols. Extracted from a patch by Sami Liedes.Rafael Espindola2012-12-312-0/+14
| | | | llvm-svn: 171302
* Check for errors. Extracted from a patch by Sami Liedes.Rafael Espindola2012-12-311-6/+12
| | | | llvm-svn: 171301
* Fix indentation. Extracted from a patch by Sami Liedes!Rafael Espindola2012-12-311-32/+32
| | | | llvm-svn: 171300
* Style fixes in llvm-readobj.cpp. Extracted from a patch by Sami Liedes!Rafael Espindola2012-12-311-28/+18
| | | | llvm-svn: 171299
* add support for PHI nodes to ObjectSizeOffsetVisitorNuno Lopes2012-12-312-3/+68
| | | | llvm-svn: 171298
* Remove dead method.Bill Wendling2012-12-311-6/+0
| | | | llvm-svn: 171295
* Add some comparison operators to compare the Attribute object with the ↵Bill Wendling2012-12-312-3/+15
| | | | | | AttrKind value. llvm-svn: 171294
* docs: Fix FIXMESean Silva2012-12-312-4/+5
| | | | | | | I actually made a think-o when writing this FIXME since I wrote LangRef but it should actually have said WritingAnLLVMBackend. llvm-svn: 171293
* 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-316-1/+130
| | | | | | | | | | | | | | | | | | | | | | | 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
* Start sketching out a roadmap for better subprocess management in theChandler Carruth2012-12-311-136/+140
| | | | | | | | | | | | | | | | | | | | | LLVM libraries. Also, clean up the doxygen and formatting of the existing interfaces. With this change I'm calling the existing interface "legacy" because I'd like to replace it with something much better. My end goal is to expose a common set of interfaces for inspecting various properties of a process, and implementations to expose those both for the current process and for child processes. This will also expose more rich interfaces for spawning and controling a subprocess, notably to use system calls like wait3 and wait4 where available and gather detailed resource usage stats about the subprocess. My plan (discussed with Michael Spencer on IRC) is to base this loosely around the proposed Boost.Process interface, but to implement a relatively small subset of that functionality based around the needs of LLVM, Clang, the Clang driver, etc. llvm-svn: 171285
* Fix LICM's memory promotion optimization to preserve TBAA tags whenChris Lattner2012-12-312-8/+58
| | | | | | | 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-312-0/+41
| | | | | | 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-315-32/+9
| | | | | | 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-312-0/+23
| | | | | | | if C1 and C2 differ only with one bit. Fixes PR14708. llvm-svn: 171270
* Support ppcf128 in SelectionDAG::getConstantFPHal Finkel2012-12-302-1/+17
| | | | | | | | 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
* Documentation: add a section to prevent spurious test failures like the oneDmitri Gribenko2012-12-301-0/+37
| | | | | | fixed in r171243. llvm-svn: 171258
* Use the predicate methods off of AttributeSet instead of Attribute.Bill Wendling2012-12-309-38/+28
| | | | llvm-svn: 171257
* Remove the Function::getRetAttributes method in favor of using the ↵Bill Wendling2012-12-307-27/+19
| | | | | | AttributeSet accessor method. llvm-svn: 171256
* Remove Function::getParamAttributes and use the AttributeSet accessor ↵Bill Wendling2012-12-306-34/+31
| | | | | | methods instead. llvm-svn: 171255
* Remove the Function::getFnAttributes method in favor of using the AttributeSetBill Wendling2012-12-3039-111/+186
| | | | | | | | | 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-303-5/+5
| | | | llvm-svn: 171252
* LoopVectorizer: Fix a bug in the code that updates the loop exiting block.Nadav Rotem2012-12-302-0/+42
| | | | | | | | | 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
* Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ↵Dmitri Gribenko2012-12-3027-30/+30
| | | | | | | | ModuleID This is done to avoid odd test failures, like the one fixed in r171243. llvm-svn: 171250
* 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 check to the test ↵Dmitri Gribenko2012-12-301-1/+3
| | | | | | | | | Analysis/ScalarEvolution/2010-09-03-RequiredTransitive.ll This test did not test anything at all (except for opt crashing, but that was not the reason why it was added). llvm-svn: 171248
* 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
* Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ↵Dmitri Gribenko2012-12-3048-49/+49
| | | | | | | | ModuleID This is done to avoid odd test failures, like the one fixed in r171243. llvm-svn: 171246
* 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-305-23/+24
| | | | | | method won't be sticking around. llvm-svn: 171244
* llvm/test/Transforms/GVN/null-aliases-nothing.ll: Fix a RUN line not to emit ↵NAKAMURA Takumi2012-12-301-1/+1
| | | | | | | | ModuleID. Larry Evans reported it fails if source tree contains "load", like "download". llvm-svn: 171243
* 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
OpenPOWER on IntegriCloud