de2d8694e25a814696358e95141f4b1aa4d8847e |
|
20-Sep-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r275480 Bug: http://b/31320715 This merges commit 7dcf7f03e005379ef2f06db96aa93f06186b66d5 from aosp/dev. Test: Build AOSP and run RenderScript tests (host tests for slang and libbcc, RsTest, CTS) Change-Id: Iaf3738f74312d875e69f61d604ac058f381a2a1a
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
f3ef5332fa3f4d5ec72c178a2b19dac363a19383 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 Change-Id: I1f29c4676a8abe633ab5707dded58d846c973d50
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
0c7f116bb6950ef819323d855415b2f2b0aad987 |
|
06-May-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r235153 Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
ebe69fe11e48d322045d5949c83283927a0d790b |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r230699. Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
c6a4f5e819217e1e12c458aed8e7b122e23a3a58 |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
354362524a72b3fa43a6c09380b7ae3b2380cbba |
|
19-Nov-2013 |
Juergen Ributzka <juergen@apple.com> |
[weak vtables] Remove a bunch of weak vtables This patch removes most of the trivial cases of weak vtables by pinning them to a single object file. The memory leaks in this version have been fixed. Thanks Alexey for pointing them out. Differential Revision: http://llvm-reviews.chandlerc.com/D2068 Reviewed by Andy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
b21ab43cfc3fa0dacf5c95f04e58b6d804b59a16 |
|
18-Nov-2013 |
Alexey Samsonov <samsonov@google.com> |
Revert r194865 and r194874. This change is incorrect. If you delete virtual destructor of both a base class and a subclass, then the following code: Base *foo = new Child(); delete foo; will not cause the destructor for members of Child class. As a result, I observe plently of memory leaks. Notable examples I investigated are: ObjectBuffer and ObjectBufferStream, AttributeImpl and StringSAttributeImpl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
5a364c5561ec04e33a6f5d52c14f1bac6f247ea0 |
|
15-Nov-2013 |
Juergen Ributzka <juergen@apple.com> |
[weak vtables] Remove a bunch of weak vtables This patch removes most of the trivial cases of weak vtables by pinning them to a single object file. Differential Revision: http://llvm-reviews.chandlerc.com/D2068 Reviewed by Andy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
f45edcc3818757234c20d4d5975c0b992bf1f95e |
|
20-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Allow subtarget selection of the default MachineScheduler and document the interface. The global registry is used to allow command line override of the scheduler selection, but does not work well as the normal selection API. For example, the same LLVM process should be able to target multiple targets or subtargets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
fb386db636d134b0b72cf0a37075906cf8f7248c |
|
06-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: cleanup register pressure update, remove a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
38e61122f27a8ca4ef0578eaf6dc5242880d2918 |
|
06-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Added MachineSchedPolicy. Allow subtargets to customize the generic scheduling strategy. This is convenient for targets that don't need to add new heuristics by specializing the strategy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
16bb45c5c8e918efa732fd7d0b31c0f31dc2a979 |
|
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Suppress register pressure tracking when the scheduling window is too small. If the instruction window is < NumRegs/2, pressure tracking is not likely to be effective. The scheduler has to process a very large number of tiny blocks. We want this to be fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
40b52bb8f2b4f63f6d99e347af0c48945f9cb4d2 |
|
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: bypass heuristic checks when regpressure tracking is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
42ebb3ad41813af292cfa681c1fe2aadd1008721 |
|
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Added -misched-regpressure option. Register pressure tracking is half the complexity of the scheduler. It's useful to be able to turn it off for compile time and performance comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
663bd9922776e5f7bc17dfc574efe3fe05ceb12c |
|
30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: update PressureDiffs on-the-fly for liveness. This removes all expensive pressure tracking logic from the scheduling critical path of node comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
4c60b8a78d811a5b16ae45f6957933fb479bab58 |
|
30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Precompute a PressureDiff for each instruction, adjust for liveness later. Created SUPressureDiffs array to hold the per node PDiff computed during DAG building. Added a getUpwardPressureDelta API that will soon replace the old one. Compute PressureDelta here from the precomputed PressureDiffs. Updating for liveness will come next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
851bb2c9cbbd3b1847def5ca7ea8dadf457298b5 |
|
29-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Comment and revise the cyclic critical path code. This should be much more clear now. It's still disabled pending testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
d2763f6ce62eaa497e944331668414e35f3712f3 |
|
23-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Don't call MBB.size() in initSUnits. The driver already has instr count. This fixes a pathological compile time problem with very large blocks and lots of scheduling boundaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
38084db681d99a7b167328cf5420c20f88036d1b |
|
14-Jun-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Move #include from .h to .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
e38afe1e335084134f7830ba6f2208e2ddde59b4 |
|
24-Apr-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: eliminate local vreg copies. For now, we just reschedule instructions that use the copied vregs and let regalloc elliminate it. I would really like to eliminate the copies on-the-fly during scheduling, but we need a complete implementation of repairIntervalsInRange() first. The general strategy is for the register coalescer to eliminate as many global copies as possible and shrink live ranges to be extended-basic-block local. The coalescer should not have to worry about resolving local copies (e.g. it shouldn't attemp to reorder instructions). The scheduler is a much better place to deal with local interference. The coalescer side of this equation needs work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
4392f0f407fe4e2a9ec53b2560a1cbf86357c190 |
|
13-Apr-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: schedule physreg copies. The register allocator expects minimal physreg live ranges. Schedule physreg copies accordingly. This is slightly tricky when they occur in the middle of the scheduling region. For now, this is handled by rescheduling the copy when its associated instruction is scheduled. Eventually we may instead bundle them, but only if we can preserve the bundles as parallel copies during regalloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
b717a5084722a5cad843444a8b1b4bf53f1c6325 |
|
16-Feb-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Use const reference instead of vector object when passing an argument to updateScheduledPressure method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
3084979ff27f48487c7421536144c41a36cae997 |
|
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MachineScheduler support for viewGraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
4e1fb1894048455d49d62543b3f83672b27b0000 |
|
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MIsched: Improve the interface to SchedDFS analysis (subtrees). Allow the strategy to select SchedDFS. Allow the results of SchedDFS to affect initialization of the scheduler state. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
178f7d08a41f2e9432b96cd27f0c8ea42fa0ac9e |
|
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MISched: Add SchedDFSResult to ScheduleDAGMI to formalize the interface and allow other strategies to select it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
674be02d525d4e24bc6943ed9274958c580bcfbc |
|
10-Jan-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Fix include guards so they exactly match file names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
638d2d74bc4d9e972aed6479889a894d74e838ba |
|
20-Nov-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a place where the declaration didn't use LLVM_ENABLE_DUMP but the definition did. The last part of PR14324. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
9b5caaa9c452f262a52dd5ac7ebbc722da5a63de |
|
12-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Target-independent support for load/store clustering. This infrastructure is generally useful for any target that wants to strongly prefer two instructions to be adjacent after scheduling. A following checkin will add target-specific hooks with unit tests. Then this feature will be enabled by default with misched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
3b87f6204fe094610282eea4c8ad7ea4e331d8db |
|
07-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Heuristics based on the machine model. misched is disabled by default. With -enable-misched, these heuristics balance the schedule to simultaneously avoid saturating processor resources, expose ILP, and minimize register pressure. I've been analyzing the performance of these heuristics on everything in the llvm test suite in addition to a few other benchmarks. I would like each heuristic check to be verified by a unit test, but I'm still trying to figure out the best way to do that. The heuristics are still in considerable flux, but as they are refined we should be rigorous about unit testing the improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
1e94e98b0ec44c5b04eaa8c9e7fb6d7669b3cdea |
|
15-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: ILP scheduler for experimental heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
412cd2f81374865dfa708bef6d5b896ca10dece0 |
|
10-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: Use the TargetSchedModel interface wherever possible. Allows the new machine model to be used for NumMicroOps and OutputLatency. Allows the HazardRecognizer to be disabled along with itineraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
d039b383e76e6658846dca9eee3fe7f221a2f938 |
|
14-Sep-2012 |
Andrew Trick <atrick@apple.com> |
misched: add a hook for custom DAG postprocessing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
78e5efe1b202f71975ad93f33b1fda21d83fd1fb |
|
11-Sep-2012 |
Andrew Trick <atrick@apple.com> |
Reorganize MachineScheduler interfaces and publish them in the header. The Hexagon target decided to use a lot of functionality from the target-independent scheduler. That's fine, and other targets should be able to do the same. This reorg and API update makes that easy. For the record, ScheduleDAGMI was not meant to be subclassed. Instead, new scheduling algorithms should be able to implement MachineSchedStrategy and be done. But if need be, it's nice to be able to extend ScheduleDAGMI, so I also made that easier. The target scheduler is somewhat more apt to break that way though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
3fb99a73686c39d9855b3f8881add977af3868cb |
|
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Consistently use AnalysisID types in TargetPassConfig. This makes it possible to just use a zero value to represent "no pass", so the phony NoPassID global variable is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
23d59c2fb847f1869b72bcbda67052ac6b2aaee9 |
|
25-Apr-2012 |
Andrew Trick <atrick@apple.com> |
typo in declaration from earlier today git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
86b7e2acc9e3b55b8afdfeabda124cc6547e943b |
|
24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
Fix a naughty header include that breaks "installed" builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155486 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
006e1abf76148626fb38de1b643c2d31de7f08a7 |
|
24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: DAG builder support for tracking register pressure within the current scheduling region. The DAG builder is a convenient place to do it. Hopefully this is more efficient than a separate traversal over the same region. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
fc728fbdc2631ce8f343cf9b7292d218fde7419f |
|
19-Apr-2012 |
Andrew Trick <atrick@apple.com> |
Allow targets to select the default scheduler by name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
d04ec0c855176ebddd459c044bdd24f49938fae4 |
|
09-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: allow the default scheduler to be one chosen by the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|
c174eaf9481e3f7a6695d4f19e62e2b6f005c4e9 |
|
08-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched interface: Expose the MachineScheduler pass. Allow targets to provide their own schedulers (subclass of ScheduleDAGInstrs) to the misched pass. Select schedulers using -misched=... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineScheduler.h
|