Richard Sandiford
8c20158fb0
[SystemZ] Use SRST to optimize memchr
...
SystemZTargetLowering::emitStringWrapper() previously loaded the character
into R0 before the loop and made R0 live on entry. I'd forgotten that
allocatable registers weren't allowed to be live across blocks at this stage,
and it confused LiveVariables enough to cause a miscompilation of f3 in
memchr-02.ll.
This patch instead loads R0 in the loop and leaves LICM to hoist it
after RA. This is actually what I'd tried originally, but I went for
the manual optimisation after noticing that R0 often wasn't being hoisted.
This bug forced me to go back and look at why, now fixed as r188774.
We should also try to optimize null checks so that they test the CC result
of the SRST directly. The select between null and the SRST GPR result could
then usually be deleted as dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188779 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-20 09:38:48 +00:00
..
2013-08-05 11:23:46 +00:00
2013-07-31 11:36:35 +00:00
2013-07-31 11:36:35 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 11:36:35 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:21:55 +00:00
2013-07-31 11:36:35 +00:00
2013-07-19 16:24:22 +00:00
2013-07-31 11:36:35 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:24:22 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-20 09:14:46 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 12:30:20 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-19 12:42:31 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 12:38:08 +00:00
2013-07-31 12:38:08 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-07 11:03:34 +00:00
2013-08-07 11:03:34 +00:00
2013-08-07 11:03:34 +00:00
2013-08-07 11:10:06 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 11:36:35 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 11:36:35 +00:00
2013-07-31 11:36:35 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-19 12:48:54 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:26:39 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:26:39 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:37:00 +00:00
2013-07-19 16:37:00 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:26:39 +00:00
2013-07-19 16:32:12 +00:00
2013-07-19 16:32:12 +00:00
2013-07-19 16:44:32 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 12:30:20 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-01 10:29:45 +00:00
2013-07-14 06:24:09 +00:00
2013-08-01 10:29:45 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-01 10:29:45 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-01 10:29:45 +00:00
2013-07-14 06:24:09 +00:00
2013-08-01 10:29:45 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-05 11:03:20 +00:00
2013-08-01 10:39:40 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-19 12:42:31 +00:00
2013-08-19 12:42:31 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-19 12:56:58 +00:00
2013-07-19 16:26:39 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:26:39 +00:00
2013-07-19 16:37:00 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:26:39 +00:00
2013-07-19 16:37:00 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-16 00:37:11 +00:00
2013-08-05 11:23:46 +00:00
2013-08-20 09:38:48 +00:00
2013-08-20 09:38:48 +00:00
2013-08-16 10:55:47 +00:00
2013-08-16 10:55:47 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:21:55 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:24:22 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:24:22 +00:00
2013-07-31 11:36:35 +00:00
2013-07-16 11:55:57 +00:00
2013-07-18 10:40:35 +00:00
2013-07-16 11:55:57 +00:00
2013-07-18 10:06:15 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:12:08 +00:00
2013-07-14 06:24:09 +00:00
2013-08-16 11:21:54 +00:00
2013-08-16 11:21:54 +00:00
2013-08-16 11:29:37 +00:00
2013-08-16 11:41:43 +00:00
2013-08-16 11:41:43 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:21:55 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:24:22 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:24:22 +00:00