summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* 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-282-4/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Teach the inline cost analysis about calls that can be simplified andChandler Carruth2012-12-282-11/+125
| | | | | | | | | | | | | | | | | | | | | how to propagate constants through insert and extract value instructions. With the recent improvements to instsimplify, this allows inline cost analysis to constant fold through intrinsic functions, including notably the with.overflow intrinsic math routines which often show up inside of STL abstractions. This is yet another piece in the puzzle of breaking down the code for: void f() { std::vector<int> v; v.push_back(1); } But it still isn't enough. There are a pile of bugs in inline cost still blocking this. llvm-svn: 171195
* Teach instsimplify to use the constant folder where appropriate forChandler Carruth2012-12-283-10/+83
| | | | | | | | constant folding calls. Add the initial tests for this which show that now instsimplify can simplify blindingly obvious code patterns expressed with both intrinsics and library calls. llvm-svn: 171194
* Add entry points to instsimplify for simplifying calls. The entry pointsChandler Carruth2012-12-282-5/+50
| | | | | | | | | | are nice and decomposed so that we can simplify synthesized calls as easily as actually call instructions. The internal utility still has the same behavior, it just now operates on a more generic interface so that I can extend the set of call simplifications that instsimplify knows about. llvm-svn: 171189
OpenPOWER on IntegriCloud