summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* R600/SILowerControlFlow.cpp: Fix a warning. [-Wunused-variable]NAKAMURA Takumi2013-01-211-3/+2
| | | | llvm-svn: 173040
* Switch CodeMetrics itself over to use TTI to determine if an instructionChandler Carruth2013-01-216-95/+29
| | | | | | | | | | | | is free. The whole CodeMetrics API should probably be reworked more, but this is enough to allow deleting the duplicate code there for computing whether an instruction is free. All of the passes using this have been updated to pull in TTI and hand it to the CodeMetrics stuff. Further, a dead CodeMetrics API (analyzeFunction) is nuked for lack of users. llvm-svn: 173036
* Fix indentation and formatting.Chandler Carruth2013-01-211-71/+71
| | | | | | This change brought to by clang-format. =] llvm-svn: 173034
* Sink InlineCost.cpp into IPA -- it is now officially an interproceduralChandler Carruth2013-01-213-1/+1
| | | | | | | | | | analysis. How cute that it wasn't previously. ;] Part of this confusion stems from the flattened header file tree. Thanks to Benjamin for pointing out the goof on IRC, and we're considering un-flattening the headers, so speak now if that would bug you. llvm-svn: 173033
* Move the inline cost analysis's primary cost query to TTI instead of theChandler Carruth2013-01-211-4/+4
| | | | | | | | old CodeMetrics system. TTI has the specific advantage of being extensible and customizable by targets to reflect target-specific cost metrics. llvm-svn: 173032
* Now that the inline cost analysis is a pass, we can easily have itChandler Carruth2013-01-212-12/+22
| | | | | | | | | | | depend on and use other analyses (as long as they're either immutable passes or CGSCC passes of course -- nothing in the pass manager has been fixed here). Leverage this to thread TargetTransformInfo down through the inline cost analysis. No functionality changed here, this just threads things through. llvm-svn: 173031
* Make the inline cost a proper analysis pass. This remains essentiallyChandler Carruth2013-01-215-30/+70
| | | | | | | | | | | | | | | | a dynamic analysis done on each call to the routine. However, now it can use the standard pass infrastructure to reference other analyses, instead of a silly setter method. This will become more interesting as I teach it about more analysis passes. This updates the two inliner passes to use the inline cost analysis. Doing so highlights how utterly redundant these two passes are. Either we should find a cheaper way to do always inlining, or we should merge the two and just fiddle with the thresholds to get the desired behavior. I'm leaning increasingly toward the latter as it would also remove the Inliner sub-class split. llvm-svn: 173030
* Formatting and comment fixes to the always inliner.Chandler Carruth2013-01-211-25/+28
| | | | | | Formatting fixes brought to you by clang-format. llvm-svn: 173029
* Clean up the formatting and doxygen for the simple inliner a bit. NoChandler Carruth2013-01-211-18/+29
| | | | | | functionality changed. llvm-svn: 173028
* Fix an old-style doxygen comment.Chandler Carruth2013-01-211-1/+1
| | | | llvm-svn: 173027
* Cleanup the formatting of this header. This removes the namespace indentChandler Carruth2013-01-211-105/+104
| | | | | | | and reformats a few constructors using clang-format. Only whitespace changes here. llvm-svn: 173018
* Revert "[Object] .bss sections have no content. PR15005."Michael J. Spencer2013-01-211-7/+5
| | | | | | This reverts commit r173007. llvm-svn: 173012
* Use <0 checks in place of ==-1 because it results in simpler code.Craig Topper2013-01-211-3/+3
| | | | llvm-svn: 173010
* Use MVT instead of EVT in LowerVECTOR_SHUFFLEtoBlend.Craig Topper2013-01-211-6/+5
| | | | llvm-svn: 173009
* Remove trailing whitespace.Craig Topper2013-01-211-9/+9
| | | | llvm-svn: 173008
* [Object] .bss sections have no content. PR15005.Michael J. Spencer2013-01-211-5/+7
| | | | llvm-svn: 173007
* Fix some 80 column violations.Craig Topper2013-01-211-7/+9
| | | | llvm-svn: 173006
* Make helper method static.Craig Topper2013-01-212-4/+2
| | | | llvm-svn: 173005
* [Support] Make test C++03.Michael J. Spencer2013-01-211-4/+2
| | | | llvm-svn: 173004
* Remove the comma from the last enumerator to fix -pedantic warnings.Chandler Carruth2013-01-211-1/+1
| | | | llvm-svn: 172999
* Introduce a generic interface for querying an operation's expectedChandler Carruth2013-01-212-1/+190
| | | | | | | | | | | | | | | lowered cost. Currently, this is a direct port of the logic implementing isInstructionFree in CodeMetrics. The hope is that the interface can be improved (f.ex. supporting un-formed instruction queries) and the implementation abstracted so that as we have test cases and target knowledge we can expose increasingly accurate heuristics to clients. I'll start switching existing consumers over and kill off the routine in CodeMetrics in subsequent commits. llvm-svn: 172998
* Support/Compiler.h: MSC1600, aka VS2010, is not C++11-ready.NAKAMURA Takumi2013-01-211-2/+2
| | | | | | | LLVM_HAS_CXX11_TYPETRAITS -- std::is_constructible LLVM_HAS_CXX11_STDLIB -- std::unique_ptr llvm-svn: 172997
* Disable test that fails due to lack of std::true_type in C++03.Benjamin Kramer2013-01-201-0/+2
| | | | | | Michael, can this test be ported to C++03? llvm-svn: 172996
* Convert more EVT's to MVT's in the lowering methods.Craig Topper2013-01-201-23/+24
| | | | llvm-svn: 172995
* Capitalize lowerTRUNCATE so that it matches the other lower functions in ↵Craig Topper2013-01-202-3/+3
| | | | | | this file despite it not matching coding standards. llvm-svn: 172994
* Revert CostTable algorithm, will re-writeRenato Golin2013-01-203-163/+102
| | | | llvm-svn: 172992
* [Support] Port ErrorOr<T> from lld to C++03.Michael J. Spencer2013-01-205-0/+452
| | | | llvm-svn: 172991
* LoopVectorize: Fix a C++11 incompatibility.Benjamin Kramer2013-01-201-1/+1
| | | | llvm-svn: 172990
* Add instruction encodings / disassembly support for l2rus instructions.Richard Osborne2013-01-204-23/+92
| | | | llvm-svn: 172987
* Add instruction encodings / disassembly support for l3r instructions.Richard Osborne2013-01-204-56/+216
| | | | llvm-svn: 172986
* Add instruction encodings / disassembler support for 2rus instructions.Richard Osborne2013-01-204-23/+113
| | | | llvm-svn: 172985
* Add instruction encodings / disassembly support 3r instructions.Richard Osborne2013-01-204-85/+205
| | | | | | | | It is not possible to distinguish 3r instructions from 2r / rus instructions using only the fixed bits. Therefore if an instruction doesn't match the 2r / rus format try to decode it as a 3r instruction before returning Fail. llvm-svn: 172984
* llvm/test/CodeGen/X86/win_ftol2.ll: Add -cpu=generic to appease valgrind.NAKAMURA Takumi2013-01-201-1/+1
| | | | | | | On valgrind the processor is reported; Host CPU: athlon-fx llvm-svn: 172983
* llvm/utils/valgrind/x86_64-pc-linux-gnu.supp: Add /usr/bin/cmp.NAKAMURA Takumi2013-01-201-0/+6
| | | | llvm-svn: 172981
* Fix a build error.Nadav Rotem2013-01-201-2/+3
| | | | llvm-svn: 172971
* [docs] Update IRC information.Michael J. Spencer2013-01-201-4/+15
| | | | llvm-svn: 172970
* Make LowerVSETCC a static function and use MVT instead of EVT.Craig Topper2013-01-202-63/+65
| | | | llvm-svn: 172969
* Revert 172708.Nadav Rotem2013-01-205-108/+10
| | | | | | | | | The optimization handles esoteric cases but adds a lot of complexity both to the X86 backend and to other backends. This optimization disables an important canonicalization of chains of SEXT nodes and makes SEXT and ZEXT asymmetrical. Disabling the canonicalization of consecutive SEXT nodes into a single node disables other DAG optimizations that assume that there is only one SEXT node. The AVX mask optimizations is one example. Additionally this optimization does not update the cost model. llvm-svn: 172968
* Changed IRBuilder::CreateZExtOrTrunc and IRBuilder::CreateSExtOrTrunc so ↵Michael Gottesman2013-01-201-13/+15
| | | | | | | | | they also work with vectors. I also changed the name of a variable in IRBuilder::CreateFPExtOrFPTrunc to match the names used in its two matching brethern as well. llvm-svn: 172967
* Update the gcc-loops benchmarkNadav Rotem2013-01-201-0/+0
| | | | llvm-svn: 172966
* Update the linpack benchmark with different array sizes.Nadav Rotem2013-01-201-0/+0
| | | | llvm-svn: 172965
* LoopVectorizer: Implement a new heuristics for selecting the unroll factor.Nadav Rotem2013-01-202-22/+136
| | | | | | | We ignore the cpu frontend and focus on pipeline utilization. We do this because we don't have a good way to estimate the loop body size at the IR level. llvm-svn: 172964
* Change the cpu type in the test.Nadav Rotem2013-01-201-1/+1
| | | | llvm-svn: 172963
* More copy editing.Michael Gottesman2013-01-201-10/+9
| | | | llvm-svn: 172962
* Doxygenified and copy edited BasicBlock.h.Michael Gottesman2013-01-201-81/+88
| | | | llvm-svn: 172961
* Doxygenified Argument.h and performed some copy editing of the documentation.Michael Gottesman2013-01-201-31/+36
| | | | llvm-svn: 172960
* Converted all method comments in IRBuilder.h to use doxygen style comments.Michael Gottesman2013-01-201-107/+114
| | | | | | | | | | | | | | This implies changing method documentation from the following style: /// MethodName - Method description... to /// \brief Method description... ala the LLVM Style Guide. llvm-svn: 172959
* Corrected assert messages for CreateZExtOrTrunc/CreateSExtOrTrunc.Michael Gottesman2013-01-201-2/+4
| | | | llvm-svn: 172958
* Added IRBuilder::CreateFPExtOrFPTrunc.Michael Gottesman2013-01-201-0/+14
| | | | | | | | | | | This method serves an analogous purpose to CreateZExtOrTrunc/CreateSExtOrTrunc but for floating point types. In detail, it provides a manner when one is handling conversions of floating point types of automatically selecting fpext, fptrunc, or identity depending on the relative bitsize of the source and destination types. llvm-svn: 172957
* llvm/test/Other/close-stderr.ll: Mark this as XFAIL:valgrind. We got 127 ↵NAKAMURA Takumi2013-01-201-0/+4
| | | | | | instead of 1 here. llvm-svn: 172956
OpenPOWER on IntegriCloud