summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/CriticalAntiDepBreaker.h
Commit message (Collapse)AuthorAgeFilesLines
* [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use ↵Eugene Zelenko2017-09-291-13/+20
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 314559
* [NFC] Header cleanupMehdi Amini2016-04-181-3/+1
| | | | | | | | | | | | | | Removed some unused headers, replaced some headers with forward class declarations. Found using simple scripts like this one: clear && ack --cpp -l '#include "llvm/ADT/IndexedMap.h"' | xargs grep -L 'IndexedMap[<]' | xargs grep -n --color=auto 'IndexedMap' Patch by Eugene Kosov <claprix@yandex.ru> Differential Revision: http://reviews.llvm.org/D19219 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266595
* CodeGen: Use MachineInstr& in AntiDepBreaker API, NFCDuncan P. N. Exon Smith2016-02-271-3/+3
| | | | | | | | Take parameters as MachineInstr& instead of MachineInstr* in AntiDepBreaker API, since these are required to be non-null. No functionality change intended. Looking toward PR26753. llvm-svn: 262145
* [CodeGen] Reduce visibility of implementation detailsBenjamin Kramer2015-07-011-1/+1
| | | | | | NFC. llvm-svn: 241164
* Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC)Alexander Kornienko2015-06-231-1/+1
| | | | | | Apparently, the style needs to be agreed upon first. llvm-svn: 240390
* Fixed/added namespace ending comments using clang-tidy. NFCAlexander Kornienko2015-06-191-1/+1
| | | | | | | | | | | | | The patch is generated using this command: tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \ llvm/lib/ Thanks to Eugene Kosov for the original patch! llvm-svn: 240137
* Use 'override/final' instead of 'virtual' for overridden methodsAlexander Kornienko2015-04-111-1/+1
| | | | | | | | | | | | | | The patch is generated using clang-tidy misc-use-override check. This command was used: tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py \ -checks='-*,misc-use-override' -header-filter='llvm|clang' \ -j=32 -fix -format http://reviews.llvm.org/D8925 llvm-svn: 234679
* mop up: "Don’t duplicate function or class name at the beginning of the ↵Sanjay Patel2014-09-211-13/+10
| | | | | | comment." llvm-svn: 218218
* Canonicalize header guards into a common format.Benjamin Kramer2014-08-131-2/+2
| | | | | | | | | | Add header guards to files that were missing guards. Remove #endif comments as they don't seem common in LLVM (we can easily add them back if we decide they're useful) Changes made by clang-tidy with minor tweaks. llvm-svn: 215558
* fixed a few typos in commentsSanjay Patel2014-06-241-3/+3
| | | | llvm-svn: 211634
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-071-4/+5
| | | | | | class. llvm-svn: 203220
* Revert "Give internal classes hidden visibility."Benjamin Kramer2013-09-111-1/+1
| | | | | | | It works with clang, but GCC has different rules so we can't make all of those hidden. This reverts commit r190534. llvm-svn: 190536
* Give internal classes hidden visibility.Benjamin Kramer2013-09-111-1/+1
| | | | | | Worth 100k on a linux/x86_64 Release+Asserts clang. llvm-svn: 190534
* Use SmallVectorImpl instead of SmallVector as method argument to avoid ↵Craig Topper2013-07-031-1/+1
| | | | | | specifying vector size. llvm-svn: 185513
* This patch addresses bug 15031.Bill Schmidt2013-01-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | The common code in the post-RA scheduler to break anti-dependencies on the critical path contained a flaw. In the reported case, an anti-dependency between the overlapping registers %X4 and %R4 exists: %X29<def> = OR8 %X4, %X4 %R4<def>, %X3<def,dead,tied3> = LBZU 1, %X3<kill,tied1> The unpatched code breaks the dependency by replacing %R4 and its uses with %R3, the first register on the available list. However, %R3 and %X3 overlap, so this creates two overlapping definitions on the same instruction. The fix is straightforward, preventing selection of a register that overlaps any other defined register on the same instruction. The test case is reduced from the bug report, and verifies that we no longer produce "lbzu 3, 1(3)" when breaking this anti-dependency. llvm-svn: 173706
* Sort includes for all of the .h files under the 'lib' tree. These wereChandler Carruth2012-12-041-1/+1
| | | | | | | | | | missed in the first pass because the script didn't yet handle include guards. Note that the script is now able to handle all of these headers without manual edits. =] llvm-svn: 169224
* Move RegisterClassInfo.h.Andrew Trick2012-06-061-1/+1
| | | | | | Allow targets to access this API. It's required for RegisterPressure. llvm-svn: 158102
* CriticalAntiDepBreaker: Replace a SmallSet of regs with a much denser BitVector.Benjamin Kramer2012-03-171-2/+1
| | | | llvm-svn: 152999
* Teach antidependency breakers to use RegisterClassInfo.Jakob Stoklund Olesen2011-06-161-1/+4
| | | | | | No functional change was intended. llvm-svn: 133202
* Update DBG_VALUEs while breaking anti dependencies.Devang Patel2011-06-021-1/+2
| | | | llvm-svn: 132487
* Typo.Mikhail Glushenkov2011-02-091-1/+1
| | | | llvm-svn: 125232
* Fix PostRA antidependence breaker.Andrew Trick2011-02-081-3/+3
| | | | | | | | Avoid using the same register for two def operands or and earlyclobber def and use operand. This fixes PR8986 and improves on the prior fix for rdar://problem/8959122. llvm-svn: 125089
* Fixes <rdar://problem/8612856>: During postRAsched, the antidependenceAndrew Trick2010-11-021-2/+8
| | | | | | | breaker needs to check all definitions of the antidepenent register to avoid multiple defs of the same new register. llvm-svn: 118032
* Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. This timeBill Wendling2010-07-151-4/+3
| | | | | | make sure to allocate enough space in the std::vector. llvm-svn: 108449
* revert bill's patches in an attempt to fix the buildbot.Chris Lattner2010-07-151-4/+4
| | | | llvm-svn: 108419
* Use std::vector instead of a hard-coded array. The length of that array couldBill Wendling2010-07-151-4/+4
| | | | | | get *very* large, but we only need it to be the size of thenumber of pregs. llvm-svn: 108411
* Make post-ra scheduling, anti-dep breaking, and register scavenger ↵Evan Cheng2010-06-161-1/+4
| | | | | | (conservatively) aware of predicated instructions. This enables ARM to move if-conversion before post-ra scheduler. llvm-svn: 106091
* Make BreakAntiDependencies' SUnits argument const, and make the BeginDan Gohman2010-04-191-3/+3
| | | | | | and End arguments by-value rather than by-reference. llvm-svn: 101830
* Anti-dependency breaking needs to be careful regarding instructions withJim Grosbach2010-01-061-1/+2
| | | | | | multiple register definitions. llvm-svn: 92864
* 80 column and whitespace cleanupJim Grosbach2010-01-061-2/+3
| | | | llvm-svn: 92837
* Remove some old experimental code that is no longer needed. Remove ↵David Goodwin2009-11-201-8/+1
| | | | | | additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks. llvm-svn: 89471
* Do a scheduling pass ignoring anti-dependencies to identify candidate ↵David Goodwin2009-11-031-0/+4
| | | | | | registers that should be renamed. llvm-svn: 85939
* Make AntiDepReg.h internal.David Goodwin2009-10-281-1/+1
| | | | llvm-svn: 85412
* Allow the aggressive anti-dep breaker to process the same region multiple ↵David Goodwin2009-10-261-0/+4
| | | | | | times. This is necessary because new anti-dependencies are exposed when "current" ones are broken. llvm-svn: 85166
* Break anti-dependence breaking out into its own class.David Goodwin2009-10-261-0/+95
llvm-svn: 85127
OpenPOWER on IntegriCloud