Akira Hatanaka af4211ad94 [mips] Make sure loads from lazy-binding entries do not get CSE'd or hoisted out
of loops.

Previously, two consecutive calls to function "func" would result in the
following sequence of instructions:

1. load $16, %got(func)($gp) // load address of lazy-binding stub.
2. move $25, $16
3. jalr $25                  // jump to lazy-binding stub.
4. nop
5. move $25, $16
6. jalr $25                  // jump to lazy-binding stub again.

With this patch, the second call directly jumps to func's address, bypassing
the lazy-binding resolution routine:

1. load $25, %got(func)($gp) // load address of lazy-binding stub.
2. jalr $25                  // jump to lazy-binding stub.
3. nop
4. load $25, %got(func)($gp) // load resolved address of func.
5. jalr $25                  // directly jump to func.

llvm-svn: 191591
2013-09-28 00:12:32 +00:00
..
2011-09-21 17:43:48 +00:00
2011-09-09 23:14:58 +00:00
2012-05-12 03:25:16 +00:00
2012-10-28 23:08:07 +00:00
2011-08-12 18:12:06 +00:00
2012-05-12 03:25:16 +00:00
2012-10-12 02:01:09 +00:00
2012-10-12 02:01:09 +00:00
2012-10-12 02:01:09 +00:00
2012-10-12 02:01:09 +00:00
2011-09-09 23:14:58 +00:00
2012-03-29 18:43:11 +00:00
2012-05-12 03:25:16 +00:00
2011-12-19 20:24:28 +00:00
2012-05-12 03:25:16 +00:00
2013-03-09 18:25:40 +00:00
2013-03-04 22:25:01 +00:00
2011-12-20 22:52:19 +00:00
2011-12-24 03:05:43 +00:00
2013-09-07 01:14:42 +00:00
2011-09-09 23:14:58 +00:00
2012-07-05 19:29:31 +00:00
2012-10-12 02:01:09 +00:00
2012-10-12 02:01:09 +00:00
2013-02-18 04:04:26 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2012-07-11 19:50:46 +00:00
2012-06-27 00:40:34 +00:00
2012-10-27 00:57:14 +00:00
2012-10-26 22:57:32 +00:00
2013-07-26 20:58:55 +00:00
2012-08-28 02:12:42 +00:00
2011-05-25 23:30:30 +00:00