Johannes Doerfert
df729e2b82
[OpenMP] Overhaul declare target
handling
...
This patch fixes various issues with our prior `declare target` handling
and extends it to support `omp begin declare target` as well.
This started with PR49649 in mind, trying to provide a way for users to
avoid the "ref" global use introduced for globals with internal linkage.
From there it went down the rabbit hole, e.g., all variables, even
`nohost` ones, were emitted into the device code so it was impossible to
determine if "ref" was needed late in the game (based on the name only).
To make it really useful, `begin declare target` was needed as it can
carry the `device_type`. Not emitting variables eagerly had a ripple
effect. Finally, the precedence of the (explicit) declare target list
items needed to be taken into account, that meant we cannot just look
for any declare target attribute to make a decision. This caused the
handling of functions to require fixup as well.
I tried to clean up things while I was at it, e.g., we should not "parse
declarations and defintions" as part of OpenMP parsing, this will always
break at some point. Instead, we keep track what region we are in and
act on definitions and declarations instead, this is what we do for
declare variant and other begin/end directives already.
Highlights:
- new diagnosis for restrictions specificed in the standard,
- delayed emission of globals not mentioned in an explicit
list of a declare target,
- omission of `nohost` globals on the host and `host` globals on the
device,
- no explicit parsing of declarations in-between `omp [begin] declare
variant` and the corresponding end anymore, regular parsing instead,
- precedence for explicit mentions in `declare target` lists over
implicit mentions in the declaration-definition-seq, and
- `omp allocate` declarations will now replace an earlier emitted
global, if necessary.
---
Notes:
The patch is larger than I hoped but it turns out that most changes do
on their own lead to "inconsistent states", which seem less desirable
overall.
After working through this I feel the standard should remove the
explicit declare target forms as the delayed emission is horrible.
That said, while we delay things anyway, it seems to me we check too
often for the current status even though that is often not sufficient to
act upon. There seems to be a lot of duplication that can probably be
trimmed down. Eagerly emitting some things seems pretty weak as an
argument to keep so much logic around.
---
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D101030
2021-05-06 02:10:41 -05:00
..
2020-05-05 16:27:20 +00:00
2020-05-05 16:27:20 +00:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2020-12-30 20:52:01 -08:00
2020-05-27 07:51:27 +00:00
2021-01-06 02:03:30 -05:00
2020-08-03 05:38:39 +00:00
2020-12-16 20:02:49 -06:00
2020-12-16 20:02:49 -06:00
2020-12-16 20:02:49 -06:00
2020-12-16 20:02:49 -06:00
2020-12-16 20:02:49 -06:00
2020-08-27 19:37:04 +00:00
2021-02-11 17:35:09 -05:00
2021-03-31 12:58:24 -07:00
2020-11-15 18:05:11 +01:00
2020-11-15 18:05:11 +01:00
2021-02-11 17:35:09 -05:00
2021-02-11 17:35:09 -05:00
2021-02-11 17:35:09 -05:00
2019-12-12 14:36:11 +03:00
2020-07-18 12:55:50 -04:00
2020-03-27 02:30:58 -05:00
2021-01-07 14:31:20 -06:00
2020-03-27 02:30:58 -05:00
2020-03-27 02:30:58 -05:00
2020-03-27 02:30:58 -05:00
2020-08-13 07:37:10 +00:00
2020-08-13 07:37:10 +00:00
2021-05-05 20:08:38 -07:00
2020-08-13 07:37:10 +00:00
2021-05-05 20:08:38 -07:00
2020-11-19 12:01:53 -05:00
2021-05-04 09:07:35 -07:00
2020-12-31 00:27:11 -08:00
2019-12-13 16:51:46 -05:00
2021-03-24 10:15:24 -07:00
2020-10-14 17:43:51 -07:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-07-29 12:18:45 -04:00
2021-04-21 10:38:31 -07:00
2020-08-06 12:25:19 -04:00
2020-08-06 12:25:19 -04:00
2021-03-30 05:38:20 -07:00
2020-06-18 13:17:03 -04:00
2019-11-26 10:55:54 -05:00
2021-03-30 07:45:12 -07:00
2020-11-16 17:39:17 -08:00
2021-03-30 05:38:20 -07:00
2020-01-07 13:44:10 -05:00
2020-05-01 21:19:00 +00:00
2020-05-01 21:19:00 +00:00
2020-08-19 15:45:51 -07:00
2021-03-24 12:53:33 -07:00
2021-05-06 02:10:41 -05:00
2021-04-23 11:21:52 -05:00
2020-11-19 12:01:53 -05:00
2021-05-06 02:10:41 -05:00
2021-05-06 02:10:41 -05:00
2020-04-07 23:33:24 -05:00
2020-03-27 02:30:58 -05:00
2021-01-07 14:31:18 -06:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2021-03-11 23:48:35 -06:00
2021-01-07 14:31:20 -06:00
2020-12-31 00:27:11 -08:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2021-04-07 12:35:49 -07:00
2021-04-05 11:45:49 -07:00
2019-12-06 09:51:36 -05:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2020-11-20 11:11:47 -08:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2020-07-12 23:01:40 -05:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2019-12-07 13:31:46 +01:00
2021-05-05 20:08:38 -07:00
2020-08-13 07:37:10 +00:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-03-26 09:53:54 +01:00
2021-05-05 20:08:38 -07:00
2020-11-19 12:01:53 -05:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2019-12-06 09:51:36 -05:00
2020-08-19 15:45:51 -07:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2020-07-12 23:01:40 -05:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2019-12-06 09:51:36 -05:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2019-12-06 09:51:36 -05:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-03-26 09:53:54 +01:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2020-10-14 17:43:51 -07:00
2019-12-07 13:31:46 +01:00
2020-10-05 19:04:14 -07:00
2021-05-05 20:08:38 -07:00
2020-08-19 15:45:51 -07:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2019-12-07 13:31:46 +01:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2019-12-07 13:31:46 +01:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2020-03-26 09:53:54 +01:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2020-10-14 17:43:51 -07:00
2020-10-14 17:43:51 -07:00
2020-10-21 17:01:36 -04:00
2020-10-19 13:41:53 -04:00
2020-02-10 16:01:41 -05:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-12-04 07:44:36 -08:00
2021-02-02 10:09:37 -08:00
2020-10-05 19:04:14 -07:00
2021-05-06 02:10:41 -05:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2021-02-02 10:09:37 -08:00
2020-08-27 19:37:04 +00:00
2020-10-05 19:04:14 -07:00
2021-05-05 20:08:38 -07:00
2020-03-26 09:53:54 +01:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2020-12-31 00:27:11 -08:00
2020-08-27 19:37:04 +00:00
2020-08-19 15:45:51 -07:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-10-05 19:04:14 -07:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-03-26 09:53:54 +01:00
2020-08-27 19:37:04 +00:00
2020-10-05 19:04:14 -07:00
2020-12-31 00:27:11 -08:00
2020-10-05 19:04:14 -07:00
2021-03-18 09:12:56 -07:00
2021-03-18 09:12:56 -07:00
2021-05-06 02:10:41 -05:00
2021-05-06 02:10:41 -05:00
2021-05-06 02:10:41 -05:00
2021-05-06 02:10:41 -05:00
2021-05-06 02:10:41 -05:00
2021-03-19 13:38:03 +00:00
2021-02-08 13:37:04 -08:00
2021-04-09 14:00:36 -05:00
2021-04-15 12:55:07 -05:00
2021-04-09 14:00:36 -05:00
2021-03-24 10:15:24 -07:00
2020-08-07 09:58:23 -04:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-10-05 19:04:14 -07:00
2019-10-10 20:13:02 +00:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2019-10-10 20:13:02 +00:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2021-04-02 00:36:14 +01:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-08-19 15:45:51 -07:00
2019-10-10 20:13:02 +00:00
2019-10-10 20:13:02 +00:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2020-08-10 17:13:26 -05:00
2020-08-27 19:37:04 +00:00
2020-08-19 15:45:51 -07:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-10-05 19:04:14 -07:00
2019-10-18 16:47:35 +00:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2019-10-18 16:47:35 +00:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2021-04-02 00:36:14 +01:00
2020-08-27 19:37:04 +00:00
2020-05-07 10:11:06 -04:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2019-10-18 16:47:35 +00:00
2019-10-18 16:47:35 +00:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2020-08-10 17:13:26 -05:00
2020-08-27 19:37:04 +00:00
2020-10-05 19:04:14 -07:00
2020-10-05 19:04:14 -07:00
2020-11-15 18:05:11 +01:00
2021-05-05 20:08:38 -07:00
2021-02-15 13:17:05 -06:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2021-05-06 02:10:41 -05:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2021-05-06 02:10:41 -05:00
2021-05-05 20:08:38 -07:00
2020-10-06 05:43:47 -04:00
2021-05-05 20:08:38 -07:00
2020-11-19 12:01:53 -05:00
2021-05-06 02:10:41 -05:00
2021-05-06 02:10:41 -05:00
2020-06-04 12:33:25 -04:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2021-03-31 13:00:58 -07:00
2020-06-17 14:36:00 +03:00
2020-10-06 05:43:47 -04:00
2021-05-06 02:10:41 -05:00
2021-02-15 13:17:05 -06:00
2021-04-02 00:36:14 +01:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-10-06 05:43:47 -04:00
2021-05-05 20:08:38 -07:00
2020-10-28 14:25:36 +00:00
2020-01-16 18:12:50 -05:00
2020-12-31 00:27:11 -08:00
2020-10-06 05:43:47 -04:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-10-06 05:43:47 -04:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-05-29 18:00:48 +03:00
2021-02-15 13:17:05 -06:00
2021-03-25 13:52:36 -07:00
2020-05-22 12:53:37 +09:00
2020-11-20 11:11:47 -08:00
2019-12-13 16:51:46 -05:00
2020-07-15 18:11:43 -07:00
2020-12-31 00:27:11 -08:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-06-17 08:47:01 -04:00
2020-10-12 19:32:57 -07:00
2021-04-01 18:07:12 -05:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2021-05-06 02:10:41 -05:00
2020-10-05 19:04:14 -07:00
2020-07-12 23:01:40 -05:00
2020-08-13 07:37:10 +00:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-08-19 15:45:51 -07:00
2020-10-05 19:04:14 -07:00
2020-03-26 09:53:54 +01:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2021-04-16 06:25:35 -07:00
2020-08-19 15:45:51 -07:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-10-05 19:04:14 -07:00
2020-07-12 23:01:40 -05:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-03-26 09:53:54 +01:00
2020-08-27 19:37:04 +00:00
2020-10-05 19:04:14 -07:00
2021-04-16 06:25:35 -07:00
2020-10-05 19:04:14 -07:00
2021-05-05 20:08:38 -07:00
2020-08-13 07:37:10 +00:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2019-12-05 14:35:27 -05:00
2020-07-12 23:01:40 -05:00
2019-12-05 14:35:27 -05:00
2020-08-13 07:37:10 +00:00
2019-12-05 14:35:27 -05:00
2019-12-05 14:35:27 -05:00
2020-03-26 09:53:54 +01:00
2019-12-05 14:35:27 -05:00
2020-08-27 19:37:04 +00:00
2021-05-05 20:08:38 -07:00
2019-12-05 14:35:27 -05:00
2020-08-27 19:37:04 +00:00
2021-05-06 02:10:41 -05:00
2020-10-05 19:04:14 -07:00
2019-10-14 17:17:41 +00:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2019-10-14 17:17:41 +00:00
2021-05-05 20:08:38 -07:00
2020-08-27 19:37:04 +00:00
2020-08-27 19:37:04 +00:00
2020-08-19 15:45:51 -07:00
2019-10-14 17:17:41 +00:00
2019-10-14 17:17:41 +00:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2020-08-10 17:13:26 -05:00
2020-08-27 19:37:04 +00:00
2020-08-19 15:45:51 -07:00
2020-02-03 10:31:02 -05:00
2021-05-06 02:10:41 -05:00
2020-10-05 19:04:14 -07:00
2019-10-30 10:23:33 -04:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2019-10-30 10:23:33 -04:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2020-06-25 07:13:05 +00:00
2020-08-19 15:45:51 -07:00
2019-10-30 10:23:33 -04:00
2019-10-30 10:23:33 -04:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2020-08-10 17:13:26 -05:00
2020-05-07 10:11:06 -04:00
2020-10-05 19:04:14 -07:00
2020-10-05 19:04:14 -07:00
2020-11-16 17:39:17 -08:00
2021-05-05 20:08:38 -07:00
2020-08-10 17:13:26 -05:00
2021-04-01 18:07:12 -05:00
2021-04-01 18:07:12 -05:00
2021-05-05 20:08:38 -07:00
2020-04-30 14:43:01 -04:00
2020-09-16 09:30:32 -04:00
2021-05-05 20:08:38 -07:00
2020-04-30 14:43:01 -04:00
2021-05-05 20:08:38 -07:00
2020-07-12 23:01:40 -05:00
2020-08-13 07:37:10 +00:00
2020-01-02 10:07:04 -05:00
2020-08-07 09:58:23 -04:00
2020-03-26 09:53:54 +01:00
2020-04-30 14:43:01 -04:00
2021-05-05 20:08:38 -07:00
2020-02-27 16:51:57 -08:00
2020-05-19 15:09:26 +02:00
2021-05-06 02:10:41 -05:00
2021-05-06 02:10:41 -05:00
2020-08-13 07:37:10 +00:00
2021-02-11 17:35:09 -05:00
2019-11-05 10:31:59 -05:00
2020-02-11 15:42:34 -05:00
2021-02-11 17:35:09 -05:00
2021-02-11 17:35:09 -05:00
2020-02-11 15:42:34 -05:00
2020-03-27 13:54:38 -04:00
2020-11-16 17:39:17 -08:00
2020-06-04 16:29:33 -04:00
2020-06-18 12:30:50 -04:00
2020-04-30 14:43:01 -04:00
2020-08-10 17:13:26 -05:00
2021-05-06 02:10:41 -05:00
2021-05-05 20:08:38 -07:00
2020-01-02 10:07:04 -05:00
2020-08-07 09:58:23 -04:00
2021-05-05 20:08:38 -07:00
2020-03-26 09:53:54 +01:00
2021-05-05 20:08:38 -07:00
2020-04-30 14:43:01 -04:00
2021-05-05 20:08:38 -07:00
2020-08-19 15:45:51 -07:00
2020-02-03 10:31:02 -05:00
2020-09-12 15:36:06 +02:00
2020-10-05 19:04:14 -07:00
2019-11-19 15:58:19 -05:00
2020-01-02 10:07:04 -05:00
2020-06-25 07:13:05 +00:00
2020-12-31 00:27:11 -08:00
2020-08-19 15:45:51 -07:00
2021-03-17 08:46:04 -04:00
2020-03-26 09:53:54 +01:00
2020-04-30 14:43:01 -04:00
2020-10-05 19:04:14 -07:00
2020-10-05 19:04:14 -07:00
2021-05-06 02:10:41 -05:00
2021-05-06 02:10:41 -05:00
2021-05-05 20:08:38 -07:00
2020-03-26 09:53:54 +01:00
2020-12-15 13:50:12 -06:00
2021-02-03 20:58:12 -05:00
2021-05-05 20:08:38 -07:00
2020-12-31 00:27:11 -08:00
2021-03-31 13:00:58 -07:00
2020-07-22 10:15:32 -04:00
2021-02-16 14:42:08 -08:00
2020-03-18 15:02:37 -04:00
2021-01-19 12:41:15 -08:00
2020-11-19 12:01:53 -05:00
2020-07-09 13:28:51 -05:00
2021-01-19 12:41:15 -08:00
2020-05-27 11:35:31 -04:00
2020-05-27 11:35:31 -04:00
2021-03-29 07:07:09 -07:00
2021-04-02 00:36:56 +01:00
2020-12-31 00:27:11 -08:00
2020-12-15 13:50:12 -06:00
2020-12-15 13:50:12 -06:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2020-11-19 12:01:53 -05:00
2020-03-18 15:02:37 -04:00
2020-08-13 07:37:10 +00:00
2021-03-31 13:00:58 -07:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2020-03-18 15:02:37 -04:00
2020-08-13 07:37:10 +00:00
2020-08-13 07:37:10 +00:00
2021-03-31 13:00:58 -07:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2020-03-18 15:02:37 -04:00
2020-08-13 07:37:10 +00:00
2021-04-28 05:39:10 -07:00
2020-05-07 10:11:06 -04:00
2020-08-13 07:37:10 +00:00
2020-10-08 08:20:38 -04:00
2020-12-31 00:27:11 -08:00
2021-02-16 14:42:08 -08:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2021-05-05 20:08:38 -07:00
2020-11-19 12:01:53 -05:00
2020-12-31 00:27:11 -08:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-08-11 11:52:40 -07:00
2020-08-11 11:52:40 -07:00
2020-08-11 11:52:40 -07:00
2020-08-11 11:52:40 -07:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2021-03-29 07:07:09 -07:00
2021-02-16 14:42:08 -08:00
2020-11-19 12:01:53 -05:00
2021-02-16 14:42:08 -08:00
2021-02-16 14:42:08 -08:00
2020-11-19 12:01:53 -05:00
2021-03-02 07:11:06 -08:00
2021-03-29 07:07:09 -07:00
2021-01-19 12:41:15 -08:00
2021-02-16 14:42:08 -08:00
2021-04-30 16:26:59 -04:00
2020-06-25 07:13:05 +00:00
2020-05-07 10:11:06 -04:00
2020-12-31 00:27:11 -08:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-07-12 23:01:40 -05:00
2020-12-15 13:50:12 -06:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2020-12-31 00:27:11 -08:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2021-05-05 20:08:38 -07:00
2020-07-12 23:01:40 -05:00
2020-12-15 13:50:12 -06:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2020-05-07 10:11:06 -04:00
2020-08-27 18:50:52 +00:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2020-06-25 07:13:05 +00:00
2021-02-16 14:42:08 -08:00
2020-02-03 10:31:02 -05:00
2020-08-19 15:45:51 -07:00
2020-10-05 19:04:14 -07:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2020-08-19 15:45:51 -07:00
2020-05-07 10:11:06 -04:00
2020-12-31 00:27:11 -08:00
2021-05-05 20:08:38 -07:00
2021-01-20 15:55:35 +01:00
2020-07-12 23:01:40 -05:00
2020-12-15 13:50:12 -06:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2020-05-07 10:11:06 -04:00
2019-12-10 12:55:40 -05:00
2020-06-25 07:13:05 +00:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2020-02-03 10:31:02 -05:00
2021-02-16 14:42:08 -08:00
2020-08-19 15:45:51 -07:00
2021-01-20 15:55:35 +01:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2020-10-05 19:04:14 -07:00
2020-10-05 19:04:14 -07:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2021-05-05 20:08:38 -07:00
2020-08-13 07:37:10 +00:00
2020-06-25 07:13:05 +00:00
2021-02-16 14:42:08 -08:00
2020-04-30 15:10:52 -04:00
2020-05-27 07:51:27 +00:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2020-11-19 12:01:53 -05:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2020-08-19 15:45:51 -07:00
2020-05-07 10:11:06 -04:00
2020-12-31 00:27:11 -08:00
2020-11-19 12:01:53 -05:00
2021-01-20 15:55:35 +01:00
2020-12-15 13:50:12 -06:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2020-05-07 10:11:06 -04:00
2019-12-10 15:33:18 -05:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2020-02-03 10:31:02 -05:00
2021-02-16 14:42:08 -08:00
2020-08-19 15:45:51 -07:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2020-10-05 19:04:14 -07:00
2020-10-05 19:04:14 -07:00
2020-11-19 12:01:53 -05:00
2020-05-07 10:11:06 -04:00
2020-12-31 00:27:11 -08:00
2021-05-05 20:08:38 -07:00
2020-07-12 23:01:40 -05:00
2020-12-15 13:50:12 -06:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2020-05-07 10:11:06 -04:00
2020-12-31 00:27:11 -08:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2020-07-12 23:01:40 -05:00
2020-12-15 13:50:12 -06:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2021-05-05 20:08:38 -07:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2020-08-13 07:37:10 +00:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2020-06-25 07:13:05 +00:00
2021-02-16 14:42:08 -08:00
2020-08-19 15:45:51 -07:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2020-07-12 23:01:40 -05:00
2020-12-15 13:50:12 -06:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2021-05-05 20:08:38 -07:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2020-08-13 07:37:10 +00:00
2020-06-25 07:13:05 +00:00
2021-05-05 20:08:38 -07:00
2020-06-25 07:13:05 +00:00
2020-06-25 07:13:05 +00:00
2021-02-16 14:42:08 -08:00
2020-02-03 10:31:02 -05:00
2020-08-19 15:45:51 -07:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-08-19 15:45:51 -07:00
2020-05-07 10:11:06 -04:00
2020-12-31 00:27:11 -08:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2020-07-12 23:01:40 -05:00
2020-12-15 13:50:12 -06:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2021-05-05 20:08:38 -07:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2020-06-25 07:13:05 +00:00
2021-05-05 20:08:38 -07:00
2019-12-16 10:33:56 -05:00
2020-06-25 07:13:05 +00:00
2021-05-05 20:08:38 -07:00
2020-06-25 07:13:05 +00:00
2020-02-03 10:31:02 -05:00
2021-02-16 14:42:08 -08:00
2020-08-19 15:45:51 -07:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2020-10-14 17:43:51 -07:00
2021-05-05 20:08:38 -07:00
2020-10-14 17:43:51 -07:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2020-08-19 15:45:51 -07:00
2020-05-07 10:11:06 -04:00
2020-12-31 00:27:11 -08:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2020-12-15 13:50:12 -06:00
2021-03-31 13:00:58 -07:00
2020-07-09 13:28:51 -05:00
2021-05-05 20:08:38 -07:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2020-06-25 07:13:05 +00:00
2019-12-16 13:20:57 -05:00
2020-06-25 07:13:05 +00:00
2021-05-05 20:08:38 -07:00
2020-06-25 07:13:05 +00:00
2020-06-25 07:13:05 +00:00
2021-02-16 14:42:08 -08:00
2020-08-19 15:45:51 -07:00
2021-05-05 20:08:38 -07:00
2020-06-25 07:13:05 +00:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2020-10-14 17:43:51 -07:00
2020-10-14 17:43:51 -07:00
2020-11-19 12:01:53 -05:00
2020-11-19 12:01:53 -05:00
2020-05-07 10:11:06 -04:00
2020-08-13 07:37:10 +00:00
2020-06-25 07:13:05 +00:00
2021-05-05 20:08:38 -07:00
2021-02-16 14:42:08 -08:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2020-11-19 12:01:53 -05:00
2021-03-04 07:26:57 -08:00
2020-11-06 21:04:37 -06:00
2021-03-31 13:00:58 -07:00
2021-03-31 13:00:58 -07:00
2020-06-25 07:13:05 +00:00
2020-03-18 15:02:37 -04:00
2021-01-20 15:55:35 +01:00
2020-08-13 07:37:10 +00:00
2020-11-06 21:04:37 -06:00
2021-01-20 15:55:35 +01:00
2020-11-19 12:01:53 -05:00
2020-05-07 10:11:06 -04:00
2020-06-02 10:50:08 -04:00
2020-05-19 08:19:09 -04:00
2020-06-04 09:34:59 -04:00
2020-04-07 15:26:00 -04:00
2021-05-06 02:10:41 -05:00
2020-07-12 23:01:40 -05:00
2020-04-02 08:28:15 -04:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2020-08-13 07:37:10 +00:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2020-11-17 10:21:12 -08:00
2021-01-20 15:55:35 +01:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2021-05-06 02:10:41 -05:00
2021-03-17 09:42:07 -07:00
2020-05-07 10:11:06 -04:00
2020-02-13 12:03:43 -05:00
2020-07-24 10:48:20 -04:00
2020-10-05 19:04:14 -07:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2020-06-25 07:13:05 +00:00
2020-08-19 15:45:51 -07:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2020-08-10 17:13:26 -05:00
2020-05-07 10:11:06 -04:00
2020-08-19 15:45:51 -07:00
2020-02-03 10:31:02 -05:00
2020-03-13 18:04:16 -04:00
2020-10-05 19:04:14 -07:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2020-05-07 10:11:06 -04:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2020-05-07 10:11:06 -04:00
2020-06-25 07:13:05 +00:00
2020-08-19 15:45:51 -07:00
2021-04-02 00:36:14 +01:00
2020-05-07 10:11:06 -04:00
2020-08-10 17:13:26 -05:00
2020-05-07 10:11:06 -04:00
2020-10-05 19:04:14 -07:00
2020-10-05 19:04:14 -07:00
2021-03-31 13:00:58 -07:00
2020-02-14 09:53:02 +00:00
2020-02-14 11:35:17 +00:00
2021-05-05 20:08:38 -07:00
2020-07-12 23:01:40 -05:00
2020-05-07 10:11:06 -04:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2020-07-12 23:01:40 -05:00
2021-05-05 20:08:38 -07:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2020-11-20 11:11:47 -08:00
2021-05-05 20:08:38 -07:00
2019-12-24 12:22:05 -05:00
2020-06-25 07:13:05 +00:00
2020-04-30 14:43:01 -04:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2021-05-05 20:08:38 -07:00
2020-07-12 23:01:40 -05:00
2021-05-05 20:08:38 -07:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2020-11-20 11:11:47 -08:00
2021-05-05 20:08:38 -07:00
2020-08-13 07:37:10 +00:00
2021-05-05 20:08:38 -07:00
2019-12-24 12:22:05 -05:00
2020-06-25 07:13:05 +00:00
2020-02-03 10:31:02 -05:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-04-30 14:43:01 -04:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2019-12-06 09:51:36 -05:00
2020-08-19 15:45:51 -07:00
2020-02-03 10:31:02 -05:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2020-07-12 23:01:40 -05:00
2021-05-05 20:08:38 -07:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2020-11-20 11:11:47 -08:00
2021-05-05 20:08:38 -07:00
2019-12-11 16:11:41 -05:00
2021-05-05 20:08:38 -07:00
2019-12-24 12:22:05 -05:00
2019-12-07 13:31:46 +01:00
2020-06-25 07:13:05 +00:00
2020-02-03 10:31:02 -05:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-04-30 14:43:01 -04:00
2020-10-14 17:43:51 -07:00
2021-05-05 20:08:38 -07:00
2019-12-06 09:51:36 -05:00
2020-10-14 17:43:51 -07:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-04-30 14:43:01 -04:00
2019-12-06 09:51:36 -05:00
2020-08-19 15:45:51 -07:00
2020-02-03 10:31:02 -05:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-10-05 19:04:14 -07:00
2020-07-12 23:01:40 -05:00
2021-05-05 20:08:38 -07:00
2021-01-20 15:55:35 +01:00
2021-05-05 20:08:38 -07:00
2020-11-20 11:11:47 -08:00
2019-12-11 12:30:18 -05:00
2021-05-05 20:08:38 -07:00
2019-12-24 12:22:05 -05:00
2019-12-07 13:31:46 +01:00
2020-06-25 07:13:05 +00:00
2020-02-03 10:31:02 -05:00
2021-05-05 20:08:38 -07:00
2021-05-05 20:08:38 -07:00
2020-04-30 14:43:01 -04:00
2020-10-14 17:43:51 -07:00
2019-12-06 09:51:36 -05:00
2020-10-14 17:43:51 -07:00
2021-05-05 20:08:38 -07:00
2019-12-06 09:51:36 -05:00
2020-06-25 07:13:05 +00:00
2021-05-05 20:08:38 -07:00
2020-04-30 14:43:01 -04:00
2019-12-06 09:51:36 -05:00
2020-12-01 10:33:12 -08:00
2021-05-06 02:10:41 -05:00
2021-02-16 09:45:07 -08:00
2021-05-06 02:10:41 -05:00
2021-02-16 09:45:07 -08:00
2021-05-05 20:08:38 -07:00