Commit Graph

36 Commits

Author SHA1 Message Date
Sho Ikeda
03fbd4a6de [gardening][SIL] Replace typedef with using 2018-04-05 13:53:20 +09:00
swift-ci
bc76ac0f50 Merge remote-tracking branch 'origin/master' into master-next 2017-12-20 14:49:53 -08:00
Chris Lattner
0c6e0c25a1 Two NFC changes:
- Add a DominanceInfo::dominates helper functions that takes two instructions,
  as analogues to the properlyDominates ones.
- Further generalize some SILBuilder code to be more defensive in the face
  of incorrect or partially constructed SIL instructions.

These are cleanups, NFC.
2017-12-19 20:18:24 -08:00
Bob Wilson
d5fd775703 master-next: Update DomTreeBuilder template declarations.
The declarations that I moved into the header on master do not
match the versions for master-next. This just updates the header
to match the template instantiations in lib/SIL/Dominance.cpp.
2017-09-23 12:00:25 -07:00
Bob Wilson
acf22554f3 Declare DomTreeBuilder template instantiations in Dominance.h
This is a follow-up to https://github.com/apple/swift/pull/11075.
2017-09-07 16:08:48 -07:00
John McCall
4d3e44f98d Update SIL's dominance analysis for the template changes in LLVM.
StackPromotion is still busted.
2017-07-18 17:03:28 -04:00
Bob Wilson
b9f6e6b371 Remove llvm::DominatorBase templates to match LLVM r306713.
The content from DominatorBase has been merged into DominatorTreeBase,
and DominatorBase has been removed.
2017-07-05 11:56:00 -07:00
Bob Wilson
37e7d1c627 Merge remote-tracking branch 'origin/master' into master-next 2017-01-08 17:07:46 -08:00
practicalswift
6d1ae2a39c [gardening] 2016 → 2017 2017-01-06 16:41:22 +01:00
Bob Wilson
78b28243ff Merge remote-tracking branch 'origin/master' into master-next 2017-01-03 14:22:59 -08:00
practicalswift
9d0b2abfc2 [gardening] Normalize end-of-namespace comments 2016-12-17 22:29:07 +01:00
Bob Wilson
13da3fa8b1 Merge remote-tracking branch 'origin/master' into master-next 2016-12-04 18:16:09 -08:00
practicalswift
797b80765f [gardening] Use the correct base URL (https://swift.org) in references to the Swift website
Remove all references to the old non-TLS enabled base URL (http://swift.org)
2016-11-20 17:36:03 +01:00
Bob Wilson
6ca7872ba5 Merge remote-tracking branch 'origin/master' into master-next 2016-11-16 22:12:23 -08:00
Erik Eckstein
26038055c2 StackPromotion: don’t move an alloc_ref above it’s operands.
fixes a SILVerifier crash: rdar://problem/29276015
2016-11-15 16:50:36 -08:00
Bob Wilson
d70c85745d Remove NodeType from all GraphTraits.
This is no longer used as of llvm r279475.
2016-10-15 11:02:20 -07:00
Saleem Abdulrasool
9203283628 SILOptimizer: switch to NodeRef
This adds the typedef and switches uses of NodeType * to NodeRef.  This is in
preparation for the eventual NodeRef-ization of the GraphTraits in LLVM.  NFC.
2016-08-25 13:01:11 -07:00
Saleem Abdulrasool
365c7b38be SIL: update for SVN r277399
SVN r277399 introduced a new typedef requirement for the traits type.
2016-08-13 09:26:13 -07:00
Erik Eckstein
bfe843fd92 Fix crash in post-dominator-tree verification. 2016-01-05 18:40:41 -08:00
practicalswift
50baf2e53b Use consistent formatting in top of file headers. 2016-01-04 02:17:48 +01:00
Zach Panzarino
e3a4147ac9 Update copyright date 2015-12-31 23:28:40 +00:00
Leo Shimonaka
70e66973ee Fix spelling error in documentation / comments / method name 2015-12-05 00:28:08 -05:00
Michael Gottesman
f9eab6243d Update LoopInfo for changes to LLVM.
The two changes were:

1. I added a graphtraits implementation for a const
DomTreeNodeBase<SILBasicBlock>.
2. LoopInfoBase::Analyze() => LoopInfoBase::analyze().

Swift SVN r31807
2015-09-09 04:37:25 +00:00
Michael Gottesman
eb6857aa88 Revert "Revert r29594 "Implement verification of dominance analysis.""
This reverts commit r29600.

Swift SVN r29602
2015-06-24 05:45:29 +00:00
Greg Parker
7088b2fe1b Revert r29594 "Implement verification of dominance analysis."
This broke some builders.


Swift SVN r29600
2015-06-24 05:05:46 +00:00
Michael Gottesman
0cc8706c1a Implement verification of dominance analysis.
Swift SVN r29594
2015-06-24 01:57:37 +00:00
Erik Eckstein
6d9a7a1045 Helper class for visiting basic blocks in dominance order.
It uses a worklist-based algorithm. In contrast to a recursive traversal algorithm,
it cannot cause a stack overflow for very deep dominator trees.



Swift SVN r24107
2014-12-23 09:09:34 +00:00
Michael Gottesman
a12880aa8c [dominance] Implement PostDominanceInfo::properlyDominates(SILInstruction *, SILInstruction *)
I am going to use this for dead store elimination in multi-bb load store optimization.

rdar://17680758

Swift SVN r20002
2014-07-16 04:26:00 +00:00
Arnold Schwaighofer
4a5ba0ff87 DominanceInfo: Add a verification function
Swift SVN r19629
2014-07-07 21:05:20 +00:00
Andrew Trick
53cbc3e858 Add a ColdBlockInfo analysis based on DominanceAnalysis.
This will be used by PerformanceInliner, GlobalOpt, and other passes in the future.

Swift SVN r19454
2014-07-02 06:35:09 +00:00
Arnold Schwaighofer
a14aa42ce1 SILLoopInfo: Implement SIL loop info analysis using LLVM's LoopInfo
Swift SVN r18718
2014-06-05 22:25:42 +00:00
Chris Lattner
94d4de408b adjust to llvm mainline changes.
Swift SVN r12226
2014-01-13 15:13:08 +00:00
Michael Gottesman
90082a51f1 Add in a swift namespace typedef DominanceInfoNode for llvm::DomTreeNodeBase<SILBasicBlock>.
This complements the DominanceInfo class.

Swift SVN r10736
2013-12-02 22:52:00 +00:00
Chris Lattner
a9e92a2b61 Expose basic post-dominance information.
Swift SVN r6421
2013-07-21 04:29:29 +00:00
John McCall
dd4f26c6dc It does seem to make non-generic assumptions about the node
type, though;  I had to define a WriteAsOperand function and
add a front() method to SILFunction to get this to work.
Rip out my dominators implementation and replace it with
LLVM's.  I'd forgotten that LLVM's was actually generic.

Swift SVN r4717
2013-04-12 21:24:27 +00:00
John McCall
3274de9c21 Add a simple dominance analysis based on Cooper, Harvey, and
Kennedy (2001).

This hasn't been tested yet.

Swift SVN r4712
2013-04-12 08:15:09 +00:00