-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNotes.txt
46 lines (39 loc) · 1.37 KB
/
Notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
General Overview/Structure of the Tutorial:
Outline
-------
1. Start with some basic terminology we use when talking about loops
- Picture from Loop Fusion presentation
- other terminology
2. Loop simplified/canonical form
3. Rotated loops
4. Loop Closed SSA form
5. Auxiliary data structures
6. Write a loop pass, incrementally, that does *something* on a loop (nest).
- Show how to add it to the pipeline
- Show how to test for canonical form and other conditions (i.e., rotated
loops, guarded loops, etc).
- Show how to update data structures
- Preserves::None
- Preserves::Some
- Preserves::All
- Show how to report useful information
- Statistics
- ORE
7. Useful References
General Guidelines
------------------
- Give examples whenever possible
- Provide commands being used whenever possible
Questions
- Live demo?
- Evolving example so you have a working loop optimization at the end of the
tutorial
- Use this example to illustrate several aspects of loop optimizations
- Both things that work, and things that do not work
- If we do a live example, what all do we want to include in it:
- Pass manager - which one?
- Loop opt pipeline or plugin?
- Preserves Analysis
- Updating data structures like DomTree, SCEV, etc.
- Work off of fixed LLVM release for reproducability (i.e., LLVM 9)?
- Feedback on success/failure