Kyle Butt
7fbec9bdf1
Codegen: Make chains from trellis-shaped CFGs
...
Lay out trellis-shaped CFGs optimally.
A trellis of the shape below:
A B
|\ /|
| \ / |
| X |
| / \ |
|/ \|
C D
would be laid out A; B->C ; D by the current layout algorithm. Now we identify
trellises and lay them out either A->C; B->D or A->D; B->C. This scales with an
increasing number of predecessors. A trellis is a a group of 2 or more
predecessor blocks that all have the same successors.
because of this we can tail duplicate to extend existing trellises.
As an example consider the following CFG:
B D F H
/ \ / \ / \ / \
A---C---E---G---Ret
Where A,C,E,G are all small (Currently 2 instructions).
The CFG preserving layout is then A,B,C,D,E,F,G,H,Ret.
The current code will copy C into B, E into D and G into F and yield the layout
A,C,B(C),E,D(E),F(G),G,H,ret
define void @straight_test(i32 %tag) {
entry:
br label %test1
test1: ; A
%tagbit1 = and i32 %tag, 1
%tagbit1eq0 = icmp eq i32 %tagbit1, 0
br i1 %tagbit1eq0, label %test2, label %optional1
optional1: ; B
call void @a()
br label %test2
test2: ; C
%tagbit2 = and i32 %tag, 2
%tagbit2eq0 = icmp eq i32 %tagbit2, 0
br i1 %tagbit2eq0, label %test3, label %optional2
optional2: ; D
call void @b()
br label %test3
test3: ; E
%tagbit3 = and i32 %tag, 4
%tagbit3eq0 = icmp eq i32 %tagbit3, 0
br i1 %tagbit3eq0, label %test4, label %optional3
optional3: ; F
call void @c()
br label %test4
test4: ; G
%tagbit4 = and i32 %tag, 8
%tagbit4eq0 = icmp eq i32 %tagbit4, 0
br i1 %tagbit4eq0, label %exit, label %optional4
optional4: ; H
call void @d()
br label %exit
exit:
ret void
}
here is the layout after D27742:
straight_test: # @straight_test
; ... Prologue elided
; BB#0: # %entry ; A (merged with test1)
; ... More prologue elided
mr 30, 3
andi. 3, 30, 1
bc 12, 1, .LBB0_2
; BB#1: # %test2 ; C
rlwinm. 3, 30, 0, 30, 30
beq 0, .LBB0_3
b .LBB0_4
.LBB0_2: # %optional1 ; B (copy of C)
bl a
nop
rlwinm. 3, 30, 0, 30, 30
bne 0, .LBB0_4
.LBB0_3: # %test3 ; E
rlwinm. 3, 30, 0, 29, 29
beq 0, .LBB0_5
b .LBB0_6
.LBB0_4: # %optional2 ; D (copy of E)
bl b
nop
rlwinm. 3, 30, 0, 29, 29
bne 0, .LBB0_6
.LBB0_5: # %test4 ; G
rlwinm. 3, 30, 0, 28, 28
beq 0, .LBB0_8
b .LBB0_7
.LBB0_6: # %optional3 ; F (copy of G)
bl c
nop
rlwinm. 3, 30, 0, 28, 28
beq 0, .LBB0_8
.LBB0_7: # %optional4 ; H
bl d
nop
.LBB0_8: # %exit ; Ret
ld 30, 96(1) # 8-byte Folded Reload
addi 1, 1, 112
ld 0, 16(1)
mtlr 0
blr
The tail-duplication has produced some benefit, but it has also produced a
trellis which is not laid out optimally. With this patch, we improve the layouts
of such trellises, and decrease the cost calculation for tail-duplication
accordingly.
This patch produces the layout A,C,E,G,B,D,F,H,Ret. This layout does have
back edges, which is a negative, but it has a bigger compensating
positive, which is that it handles the case where there are long strings
of skipped blocks much better than the original layout. Both layouts
handle runs of executed blocks equally well. Branch prediction also
improves if there is any correlation between subsequent optional blocks.
Here is the resulting concrete layout:
straight_test: # @straight_test
; BB#0: # %entry ; A (merged with test1)
mr 30, 3
andi. 3, 30, 1
bc 12, 1, .LBB0_4
; BB#1: # %test2 ; C
rlwinm. 3, 30, 0, 30, 30
bne 0, .LBB0_5
.LBB0_2: # %test3 ; E
rlwinm. 3, 30, 0, 29, 29
bne 0, .LBB0_6
.LBB0_3: # %test4 ; G
rlwinm. 3, 30, 0, 28, 28
bne 0, .LBB0_7
b .LBB0_8
.LBB0_4: # %optional1 ; B (Copy of C)
bl a
nop
rlwinm. 3, 30, 0, 30, 30
beq 0, .LBB0_2
.LBB0_5: # %optional2 ; D (Copy of E)
bl b
nop
rlwinm. 3, 30, 0, 29, 29
beq 0, .LBB0_3
.LBB0_6: # %optional3 ; F (Copy of G)
bl c
nop
rlwinm. 3, 30, 0, 28, 28
beq 0, .LBB0_8
.LBB0_7: # %optional4 ; H
bl d
nop
.LBB0_8: # %exit
Differential Revision: https://reviews.llvm.org/D28522
llvm-svn: 295223
2017-02-15 19:49:14 +00:00
..
2017-02-09 13:09:59 +00:00
2016-11-06 19:46:54 +00:00
2015-02-27 21:17:42 +00:00
2016-08-23 09:19:22 +00:00
2015-02-27 21:17:42 +00:00
2016-12-27 18:35:19 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2016-12-27 18:35:19 +00:00
2015-03-13 18:20:45 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2017-02-15 19:49:14 +00:00
2015-02-27 19:29:02 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-03-13 18:20:45 +00:00
2015-04-16 23:24:18 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2016-12-27 18:35:19 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-11-19 05:56:52 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2017-01-31 14:35:01 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2016-12-27 18:35:19 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2016-12-27 18:35:19 +00:00
2016-12-27 18:35:19 +00:00
2016-07-15 21:10:29 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2016-04-15 15:57:41 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-04-15 15:57:41 +00:00
2015-03-13 18:20:45 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-04-16 23:24:18 +00:00
2015-09-11 03:22:04 +00:00
2016-12-22 00:45:21 +00:00
2015-09-30 10:56:37 +00:00
2015-03-13 18:20:45 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2016-12-27 18:35:19 +00:00
2015-02-27 21:17:42 +00:00
2016-08-23 09:19:22 +00:00
2016-08-23 09:19:22 +00:00
2015-02-27 21:17:42 +00:00
2015-04-18 01:21:58 +00:00
2015-02-27 19:29:02 +00:00
2016-12-22 00:45:21 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-11-19 05:56:52 +00:00
2015-02-27 21:17:42 +00:00
2016-10-11 20:36:43 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-10-14 22:12:17 +00:00
2015-02-27 21:17:42 +00:00
2016-05-10 19:17:47 +00:00
2016-05-10 19:17:47 +00:00
2016-05-10 19:17:47 +00:00
2016-12-11 20:07:15 +00:00
2016-05-10 19:17:47 +00:00
2016-11-11 17:50:09 +00:00
2016-12-22 00:45:21 +00:00
2015-09-30 10:56:37 +00:00
2016-08-23 09:19:22 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-11-19 05:56:52 +00:00
2015-11-19 05:56:52 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-04 22:31:18 +00:00
2015-06-17 20:52:32 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-11-19 05:56:52 +00:00
2015-09-30 10:56:37 +00:00
2016-09-23 18:28:31 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2016-08-12 03:33:22 +00:00
2016-06-14 07:30:20 +00:00
2014-12-15 19:07:53 +00:00
2017-02-02 18:24:55 +00:00
2015-04-16 23:24:18 +00:00
2015-03-11 18:54:22 +00:00
2015-09-06 05:42:13 +00:00
2015-02-27 21:17:42 +00:00
2015-03-11 18:54:22 +00:00
2015-04-23 20:31:26 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-23 20:31:26 +00:00
2015-07-21 00:18:59 +00:00
2015-02-27 21:17:42 +00:00
2015-07-10 18:08:49 +00:00
2015-03-11 18:54:22 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-03-11 18:54:22 +00:00
2015-06-17 20:52:32 +00:00
2015-02-27 19:29:02 +00:00
2015-02-11 12:15:41 +00:00
2015-02-27 21:17:42 +00:00
2016-05-08 05:11:54 +00:00
2016-08-26 13:00:39 +00:00
2015-02-27 21:17:42 +00:00
2014-08-21 12:50:31 +00:00
2015-02-27 21:17:42 +00:00
2015-07-17 23:18:30 +00:00
2017-01-29 16:46:22 +00:00
2015-02-24 17:22:34 +00:00
2015-09-11 03:22:04 +00:00
2015-08-17 22:36:27 +00:00
2016-01-26 00:03:25 +00:00
2017-02-02 18:24:55 +00:00
2016-12-15 09:38:59 +00:00
2015-10-30 16:29:44 +00:00
2016-12-27 18:35:19 +00:00
2016-12-27 18:35:19 +00:00
2015-04-16 23:24:18 +00:00
2014-08-25 16:56:33 +00:00
2016-09-07 03:17:19 +00:00
2014-12-18 02:20:58 +00:00
2017-01-31 23:48:32 +00:00
2015-04-16 23:24:18 +00:00
2016-06-24 21:14:33 +00:00
2016-08-21 00:08:10 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2016-11-07 13:38:21 +00:00
2017-02-07 13:07:12 +00:00
2015-07-14 17:17:13 +00:00
2015-12-15 03:28:11 +00:00
2016-12-15 09:38:59 +00:00
2015-06-17 20:52:32 +00:00
2016-08-25 01:27:13 +00:00
2016-03-21 18:00:02 +00:00
2015-09-22 17:22:58 +00:00
2017-02-15 19:49:14 +00:00
2015-02-27 21:17:42 +00:00
2017-01-31 23:48:32 +00:00
2017-01-31 23:48:32 +00:00
2015-02-27 21:17:42 +00:00
2016-08-22 19:07:15 +00:00
2015-11-16 10:49:25 +00:00
2016-06-01 12:01:01 +00:00
2015-06-17 20:52:32 +00:00
2015-02-27 21:17:42 +00:00
2015-03-05 19:37:53 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-12-14 20:44:38 +00:00
2015-02-27 21:17:42 +00:00
2016-01-08 18:43:41 +00:00
2015-02-27 21:17:42 +00:00
2016-01-25 11:26:11 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-19 13:43:02 +00:00
2016-11-01 15:59:37 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2017-02-09 23:29:14 +00:00
2015-04-16 23:24:18 +00:00
2016-01-26 00:03:25 +00:00
2015-07-21 00:18:59 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2016-12-15 09:38:59 +00:00
2016-06-16 16:09:53 +00:00
2016-01-28 18:59:04 +00:00
2016-05-19 12:59:17 +00:00
2016-05-19 12:59:17 +00:00
2015-10-28 22:56:36 +00:00
2017-01-20 13:10:12 +00:00
2017-01-20 13:10:12 +00:00
2016-02-22 20:55:50 +00:00
2016-12-01 22:58:35 +00:00
2017-01-31 23:48:32 +00:00
2016-12-22 00:45:21 +00:00
2015-09-30 10:56:37 +00:00
2016-10-20 18:06:52 +00:00
2015-04-30 23:57:47 +00:00
2015-12-04 01:53:14 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2016-11-01 13:37:41 +00:00
2014-11-13 17:58:51 +00:00
2016-12-15 07:59:08 +00:00
2016-10-17 12:54:07 +00:00
2016-09-26 07:26:24 +00:00
2016-10-06 07:44:05 +00:00
2016-10-06 07:56:00 +00:00
2015-12-08 02:37:48 +00:00
2014-10-01 19:21:03 +00:00
2015-02-27 21:17:42 +00:00
2016-11-15 11:34:54 +00:00
2015-02-27 21:17:42 +00:00
2016-05-10 19:17:47 +00:00
2015-11-19 05:56:52 +00:00
2015-06-17 20:52:32 +00:00
2015-01-14 01:43:33 +00:00
2015-03-13 18:20:45 +00:00
2016-01-15 21:56:40 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2016-08-29 12:47:22 +00:00
2015-07-13 15:37:30 +00:00
2015-07-13 15:37:30 +00:00
2016-08-23 09:19:22 +00:00
2016-10-12 13:44:24 +00:00
2016-03-21 11:43:46 +00:00
2015-09-30 10:56:37 +00:00
2014-08-21 12:50:31 +00:00
2016-04-25 21:12:04 +00:00
2016-09-28 17:51:14 +00:00
2014-08-26 12:47:26 +00:00
2016-08-23 09:19:22 +00:00
2015-06-17 20:52:32 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-08-23 09:19:22 +00:00
2016-04-15 15:57:41 +00:00
2016-12-15 09:38:59 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-01-29 10:23:32 +00:00
2016-06-24 21:14:33 +00:00
2016-05-28 10:41:15 +00:00
2016-12-05 23:55:13 +00:00
2015-05-23 01:14:08 +00:00
2015-06-09 23:33:25 +00:00
2017-02-09 23:29:14 +00:00
2016-10-07 13:28:53 +00:00
2015-02-27 21:17:42 +00:00
2015-06-17 20:52:32 +00:00
2016-08-23 09:19:22 +00:00
2015-11-19 05:56:52 +00:00
2017-01-02 18:05:27 +00:00
2016-10-11 10:06:59 +00:00
2016-01-27 19:32:29 +00:00
2015-06-17 20:52:32 +00:00
2016-01-26 00:03:25 +00:00
2016-01-26 00:03:25 +00:00
2016-06-24 21:14:33 +00:00
2015-02-27 21:17:42 +00:00
2015-07-28 16:24:05 +00:00
2016-01-26 00:03:25 +00:00
2016-06-16 16:09:53 +00:00
2016-12-15 07:59:08 +00:00
2016-12-15 07:59:08 +00:00
2016-12-15 07:59:08 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-08-05 20:16:35 +00:00
2016-01-13 00:03:35 +00:00
2017-02-13 12:32:47 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2016-05-28 04:47:13 +00:00
2017-02-13 12:32:47 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2016-05-10 19:17:47 +00:00
2015-09-18 20:08:18 +00:00
2015-02-27 21:17:42 +00:00
2016-08-23 09:19:22 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2016-05-28 04:47:13 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-07-16 00:58:23 +00:00
2015-10-26 20:49:49 +00:00
2016-06-20 17:45:33 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-05-09 00:51:03 +00:00
2015-02-27 18:32:11 +00:00
2015-05-06 04:14:02 +00:00
2015-05-06 22:09:29 +00:00
2015-02-27 18:32:11 +00:00
2015-07-07 06:54:42 +00:00
2015-05-08 20:46:54 +00:00
2015-05-06 16:39:17 +00:00
2015-04-16 23:24:18 +00:00
2016-05-28 04:47:13 +00:00
2016-01-15 10:26:17 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-07-03 08:21:38 +00:00
2015-02-27 21:17:42 +00:00
2017-02-15 19:49:14 +00:00
2016-01-08 17:46:05 +00:00
2017-02-13 12:32:47 +00:00
2017-01-30 16:57:41 +00:00
2016-06-24 21:14:33 +00:00
2015-02-27 21:17:42 +00:00
2015-08-29 11:50:08 +00:00
2017-02-13 12:32:47 +00:00
2014-10-23 15:31:50 +00:00
2017-02-13 12:32:47 +00:00
2017-02-13 12:32:47 +00:00
2015-02-27 21:17:42 +00:00
2016-12-27 18:35:19 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-08-21 10:48:17 +00:00
2015-04-16 23:24:18 +00:00
2016-11-11 17:50:09 +00:00
2015-05-12 16:47:30 +00:00
2015-08-12 15:05:39 +00:00
2015-06-17 20:52:32 +00:00
2016-01-26 00:03:25 +00:00
2017-02-02 18:24:55 +00:00
2015-06-17 20:52:32 +00:00
2016-05-10 19:17:47 +00:00
2016-08-23 09:19:22 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-04-23 16:45:24 +00:00
2016-08-10 18:36:18 +00:00
2016-08-23 09:19:22 +00:00
2015-11-18 00:40:54 +00:00
2015-02-27 21:17:42 +00:00
2015-11-18 00:40:54 +00:00
2017-02-02 18:24:55 +00:00
2015-02-27 21:17:42 +00:00
2015-12-01 05:29:22 +00:00
2015-12-01 05:29:22 +00:00
2015-06-08 18:50:43 +00:00
2015-05-06 22:51:04 +00:00
2016-08-23 09:19:22 +00:00
2015-05-05 22:09:41 +00:00
2015-02-27 21:17:42 +00:00
2016-12-09 19:08:15 +00:00
2016-12-09 19:08:15 +00:00
2016-09-09 13:35:36 +00:00
2015-02-27 19:29:02 +00:00
2015-04-16 23:24:18 +00:00
2016-08-25 00:06:52 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-07-20 09:48:24 +00:00
2015-02-27 19:29:02 +00:00
2014-07-25 09:55:01 +00:00
2016-01-08 00:34:44 +00:00
2016-01-08 00:34:44 +00:00
2016-05-12 21:22:37 +00:00
2016-04-08 18:15:37 +00:00
2016-04-08 18:15:37 +00:00
2016-04-25 14:29:18 +00:00
2016-04-26 03:43:49 +00:00
2016-08-23 09:19:22 +00:00
2016-04-11 22:27:40 +00:00
2016-04-13 03:08:27 +00:00
2016-09-13 12:18:15 +00:00
2017-01-31 14:35:01 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2014-11-17 14:08:57 +00:00
2016-04-12 23:21:53 +00:00
2015-06-17 20:52:32 +00:00
2015-02-27 21:17:42 +00:00
2015-05-31 19:22:07 +00:00
2015-09-01 01:42:16 +00:00
2016-11-01 13:37:41 +00:00
2015-05-31 19:22:07 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-05-31 12:39:30 +00:00
2016-06-07 11:47:24 +00:00
2015-10-05 14:49:54 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2016-02-17 16:35:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-08-23 09:19:22 +00:00
2015-02-27 21:17:42 +00:00
2016-01-15 10:26:51 +00:00
2015-02-27 21:17:42 +00:00
2016-05-18 22:04:49 +00:00
2016-05-05 18:38:53 +00:00
2015-02-27 21:17:42 +00:00
2016-10-10 16:01:54 +00:00
2017-02-09 15:13:40 +00:00
2017-02-09 15:13:40 +00:00
2015-10-26 18:23:16 +00:00
2015-10-05 14:49:54 +00:00
2015-08-13 10:48:22 +00:00
2016-05-10 19:17:47 +00:00
2015-02-27 21:17:42 +00:00
2016-10-27 10:43:02 +00:00
2016-04-13 23:08:27 +00:00
2016-09-09 12:52:24 +00:00
2016-10-18 09:08:54 +00:00
2016-08-23 09:19:22 +00:00
2017-02-04 02:27:20 +00:00
2017-01-11 19:55:19 +00:00
2015-02-27 21:17:42 +00:00
2016-08-24 19:02:29 +00:00
2016-05-13 19:16:14 +00:00
2015-08-21 21:52:48 +00:00
2017-02-03 11:14:39 +00:00
2015-11-19 05:56:52 +00:00
2015-10-05 14:49:54 +00:00
2016-06-03 15:38:55 +00:00
2016-08-23 09:19:22 +00:00
2016-12-14 16:43:44 +00:00
2015-02-27 21:17:42 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2015-08-19 14:11:27 +00:00
2016-07-15 07:55:21 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2017-01-23 20:20:39 +00:00
2017-02-02 21:08:12 +00:00
2015-03-06 19:49:10 +00:00
2017-02-01 11:55:03 +00:00
2017-02-10 17:41:08 +00:00
2015-03-13 18:20:45 +00:00
2015-06-01 12:02:47 +00:00
2015-06-01 12:02:47 +00:00
2016-10-19 16:58:59 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2017-01-27 03:41:53 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-08-17 19:37:12 +00:00
2015-09-30 10:56:37 +00:00
2015-11-17 13:21:35 +00:00
2015-07-24 09:31:48 +00:00
2015-04-16 23:24:18 +00:00
2015-03-26 18:29:02 +00:00
2015-07-12 18:16:40 +00:00
2016-07-29 23:33:48 +00:00
2017-01-02 18:05:27 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-12-04 19:34:50 +00:00
2016-04-11 22:27:40 +00:00
2015-05-20 21:40:38 +00:00
2015-02-27 21:17:42 +00:00
2016-08-23 09:19:22 +00:00
2015-02-19 00:45:04 +00:00
2015-05-20 21:40:38 +00:00
2015-04-16 23:24:18 +00:00
2015-09-30 10:56:37 +00:00
2015-02-27 21:17:42 +00:00
2016-06-16 16:09:53 +00:00
2016-05-31 15:31:55 +00:00
2016-04-22 20:40:10 +00:00
2016-03-31 19:42:04 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-10-26 10:04:52 +00:00
2015-12-17 01:29:08 +00:00
2016-02-19 03:13:40 +00:00
2016-01-26 00:03:25 +00:00
2015-02-27 19:29:02 +00:00
2015-03-27 23:41:42 +00:00
2015-02-27 21:17:42 +00:00
2017-01-16 13:39:00 +00:00
2015-09-30 10:56:37 +00:00
2015-04-03 00:18:38 +00:00
2016-03-03 22:38:39 +00:00
2016-07-20 04:13:01 +00:00
2015-10-27 10:25:20 +00:00
2015-12-20 06:41:44 +00:00
2015-03-27 06:10:13 +00:00
2014-07-23 13:59:12 +00:00
2016-12-17 02:16:26 +00:00
2015-01-19 15:16:06 +00:00
2015-02-27 21:17:42 +00:00
2016-09-09 12:52:24 +00:00
2015-02-08 00:50:47 +00:00
2015-07-16 22:34:16 +00:00
2016-12-23 02:56:07 +00:00
2016-11-16 20:54:28 +00:00
2016-01-29 19:18:46 +00:00
2016-06-21 12:29:03 +00:00
2016-05-10 19:17:47 +00:00
2016-01-27 19:32:29 +00:00
2016-10-24 18:57:55 +00:00
2016-08-02 12:44:27 +00:00
2015-08-29 10:49:11 +00:00
2015-02-27 21:17:42 +00:00
2015-06-01 12:02:47 +00:00
2017-02-10 17:41:08 +00:00
2016-01-25 11:25:36 +00:00
2017-02-10 17:41:08 +00:00
2015-06-01 12:02:47 +00:00
2015-09-30 10:56:37 +00:00
2015-12-20 06:41:44 +00:00
2015-12-20 06:41:44 +00:00
2016-07-25 22:25:25 +00:00
2016-07-25 22:25:25 +00:00
2015-03-17 18:20:47 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-11-19 05:56:52 +00:00
2014-12-15 19:07:53 +00:00
2017-02-02 18:24:55 +00:00
2016-05-31 12:39:30 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-07-29 09:16:46 +00:00
2016-05-10 19:17:47 +00:00
2015-11-19 05:56:52 +00:00
2015-02-27 21:17:42 +00:00
2015-07-07 14:45:12 +00:00
2016-08-05 20:58:29 +00:00
2015-02-27 21:17:42 +00:00
2016-04-05 22:44:44 +00:00
2016-10-28 17:21:05 +00:00
2016-03-02 19:20:00 +00:00
2017-02-13 19:58:28 +00:00
2017-02-08 22:30:47 +00:00
2016-09-08 13:12:22 +00:00
2016-08-10 09:34:34 +00:00
2016-06-07 12:13:34 +00:00
2015-04-30 22:15:59 +00:00
2016-09-07 03:17:19 +00:00
2016-11-17 10:56:58 +00:00
2016-05-10 19:17:47 +00:00
2016-11-17 10:56:58 +00:00
2015-05-07 21:48:26 +00:00
2015-02-27 21:17:42 +00:00
2015-12-01 05:29:22 +00:00
2017-02-14 21:02:24 +00:00
2015-12-15 10:10:40 +00:00
2015-09-18 18:19:40 +00:00
2016-07-20 04:13:01 +00:00
2016-12-27 18:35:19 +00:00
2015-11-30 20:37:58 +00:00
2016-07-13 20:36:03 +00:00
2016-05-10 19:17:47 +00:00
2015-08-03 09:24:48 +00:00
2016-09-19 09:11:09 +00:00
2015-04-30 23:14:14 +00:00
2015-08-31 21:10:35 +00:00
2016-01-26 00:03:25 +00:00
2015-05-01 00:45:55 +00:00
2016-06-01 21:57:11 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-12-27 18:35:19 +00:00
2016-01-26 00:03:25 +00:00
2016-01-29 10:23:32 +00:00
2015-02-27 21:17:42 +00:00
2016-02-17 16:35:18 +00:00
2016-07-15 22:31:14 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-10-26 21:32:53 +00:00
2015-07-28 22:44:28 +00:00
2015-02-27 21:17:42 +00:00
2016-10-03 10:12:32 +00:00
2015-12-20 06:41:44 +00:00
2015-12-20 06:41:44 +00:00
2016-07-25 22:25:25 +00:00
2016-08-10 09:34:34 +00:00
2016-12-27 18:35:19 +00:00
2016-08-23 09:19:22 +00:00
2016-06-24 00:08:01 +00:00
2016-05-10 19:17:47 +00:00
2017-02-03 11:15:53 +00:00
2017-02-13 14:07:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-08-22 21:59:26 +00:00
2015-03-11 18:54:22 +00:00
2015-03-11 18:54:22 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2015-02-27 21:17:42 +00:00
2017-02-13 17:18:00 +00:00
2016-04-26 05:04:37 +00:00
2016-12-14 20:44:38 +00:00
2016-03-17 20:10:28 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-31 10:20:58 +00:00
2016-03-17 20:10:28 +00:00
2017-01-10 22:02:30 +00:00
2015-09-30 10:56:37 +00:00
2015-03-05 19:37:53 +00:00
2017-01-25 20:58:26 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-07-17 23:18:30 +00:00
2016-12-20 20:05:07 +00:00
2015-02-27 21:17:42 +00:00
2016-09-12 13:14:14 +00:00
2016-05-10 19:17:47 +00:00
2015-10-28 22:56:36 +00:00
2016-04-15 15:57:41 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-10-18 21:03:40 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2016-12-16 18:44:08 +00:00
2015-09-30 10:56:37 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-04-14 07:13:24 +00:00
2015-08-13 17:28:16 +00:00
2015-08-17 07:13:10 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2016-12-16 18:44:08 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2017-01-11 19:33:38 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2017-02-13 12:32:47 +00:00
2015-11-17 17:25:15 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2017-01-11 19:33:38 +00:00
2016-12-20 20:05:07 +00:00
2016-12-20 20:05:07 +00:00
2016-08-23 09:19:22 +00:00
2015-04-16 23:24:18 +00:00
2016-03-21 18:00:02 +00:00
2016-07-06 11:22:11 +00:00
2015-07-21 00:18:59 +00:00
2017-01-19 20:24:23 +00:00
2017-01-19 20:24:23 +00:00
2016-11-23 02:07:04 +00:00
2016-04-19 23:51:52 +00:00
2015-02-27 21:17:42 +00:00