OSDN Git Service
Sebastien Hertz [Mon, 11 May 2015 15:53:27 +0000 (17:53 +0200)]
Remove unused StackHandleScope
It is causing crashes when there is no current thread (because it has
been detached from the runtime). It happens when we sanity check the
stack during runtime shutdown after stopping method tracing.
Bug:
20993343
Change-Id: I549664932f513a01339e5b1c34b3ddc5744888c3
Nicolas Geoffray [Sat, 9 May 2015 14:17:51 +0000 (14:17 +0000)]
Merge "[optimizing] Tune some x86_64 moves"
Mathieu Chartier [Sat, 9 May 2015 00:07:34 +0000 (00:07 +0000)]
Merge "Don't allow JIT to compile native methods"
Mathieu Chartier [Sat, 9 May 2015 00:05:01 +0000 (17:05 -0700)]
Don't allow JIT to compile native methods
Change-Id: I12722309ba52c430e23ab862b29f7a48383f00d2
Andreas Gampe [Fri, 8 May 2015 23:22:24 +0000 (23:22 +0000)]
Merge "Add stub_test implementation for mips & mips64"
Andreas Gampe [Fri, 8 May 2015 23:21:03 +0000 (23:21 +0000)]
Merge "Fix stub_test for Mips64"
Goran Jakovljevic [Thu, 23 Apr 2015 13:27:23 +0000 (15:27 +0200)]
Fix stub_test for Mips64
Force ENTRY macro to load GP. Instead .cpload (used for o32 abi,
not working for n64) use .cpsetup to set up GP and save previous
GP value.
Fix expectations in GetSet32Static.
Change-Id: Ie97e32fa2fee7a6e8bae6bc36e78976b8be62b79
Mathieu Chartier [Fri, 8 May 2015 23:19:41 +0000 (23:19 +0000)]
Merge "Check IsReferenceVReg during deopt"
Mathieu Chartier [Fri, 8 May 2015 21:19:26 +0000 (14:19 -0700)]
Check IsReferenceVReg during deopt
Required since the quick GC maps may not agree with the verifier
ones. Without this check we may copy stale object references into
the shadow frame.
(cherry picked from commit
f00baf56ef647684888a407dbb6adadd704a2039)
Bug:
20736048
Change-Id: I7783c8a8ee45cf601b08b4c38f1dec7f7d11380c
Vladimir Marko [Fri, 8 May 2015 21:26:37 +0000 (21:26 +0000)]
Merge "ART: Merge entries with same name and protect in MemMap dump."
Vladimir Marko [Fri, 8 May 2015 14:17:32 +0000 (15:17 +0100)]
ART: Merge entries with same name and protect in MemMap dump.
This should make the MemMap dump less chatty and allow the
logger to keep more relevant output.
Bug:
20873174
Change-Id: I09058798faa8f79d154cee5008017b03700df8db
Calin Juravle [Fri, 8 May 2015 15:52:48 +0000 (15:52 +0000)]
Merge "Skip compilation when falling-through out of method code."
Richard Uhler [Fri, 8 May 2015 15:24:25 +0000 (15:24 +0000)]
Merge "Fix typo in comments."
Vladimir Marko [Fri, 8 May 2015 10:31:05 +0000 (10:31 +0000)]
Merge "ART: Fix debug output for bad reused MemMap."
Vladimir Marko [Fri, 8 May 2015 10:10:16 +0000 (11:10 +0100)]
ART: Fix debug output for bad reused MemMap.
Log the error_msg instead of a pointer to it.
Raise the log level to ERROR for the process maps.
Change-Id: I95f82f013d1c6360f40e6315652d1a2dda0f39e2
Andreas Gampe [Fri, 8 May 2015 00:17:56 +0000 (00:17 +0000)]
Merge "ART: Refactor 082-inline-execute"
Andreas Gampe [Thu, 7 May 2015 23:44:58 +0000 (16:44 -0700)]
ART: Refactor 082-inline-execute
Refactor the indexOf intrinsics tests so that the optimizing
compiler would actually compile them.
Bug:
20889065
Change-Id: I69bfda7fa3eb4ce42c593203731e3ddd61f7e1ed
Richard Uhler [Thu, 7 May 2015 17:52:28 +0000 (10:52 -0700)]
Fix typo in comments.
Change-Id: I6569c0fdc878f797b37509432b59b0d5c9bc5533
Vladimir Marko [Thu, 7 May 2015 17:21:51 +0000 (17:21 +0000)]
Merge "Quick: Fix DCE to rename SSA regs for degenerate Phis."
Vladimir Marko [Thu, 7 May 2015 17:21:31 +0000 (17:21 +0000)]
Merge "Quick: Abolish kMirOpCheckPart2."
Mark Mendell [Thu, 7 May 2015 15:25:03 +0000 (11:25 -0400)]
[optimizing] Tune some x86_64 moves
Generate Moves of constant FP values by loading from the constant table.
Use 'movl' to load a 64 bit register for positive 32-bit values, saving
a byte in the generated code by taking advantage of the implicit
zero extension.
Change a couple of xorq(reg, reg) to xorl to (potentially) save a byte
of code per xor.
Change-Id: I5b2a807f0d3b29294fd4e7b8ef6d654491fa0b01
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Sebastien Hertz [Thu, 7 May 2015 16:10:43 +0000 (16:10 +0000)]
Merge "Support multiple instrumentation clients"
Sebastien Hertz [Wed, 1 Apr 2015 14:34:17 +0000 (16:34 +0200)]
Support multiple instrumentation clients
Changes Instrumentation::ConfigureStubs to support multiple clients
that need different levels of instrumenation. A client is identified
by a string key used to save the desired instrumentation level.
Also adds regression gtest instrumentation_test and some cleanup.
Bug:
19829329
Change-Id: I1fc24a86fcb7cb46d4be806895376c25cc0a0b3c
Sebastien Hertz [Thu, 7 May 2015 15:45:17 +0000 (15:45 +0000)]
Merge "Remove unused InvokeWithShadowFrame"
Sebastien Hertz [Thu, 7 May 2015 15:23:16 +0000 (17:23 +0200)]
Remove unused InvokeWithShadowFrame
This is an artifact of the Portable compiler, probably left after its
removal https://android-review.googlesource.com/119049.
Change-Id: I7f6caa008e37e7a93792840c79713e90d0c7e1e1
Goran Jakovljevic [Wed, 22 Apr 2015 12:10:53 +0000 (14:10 +0200)]
Add stub_test implementation for mips & mips64
Change-Id: I1c2f6633ff78f7d453ba90e96c26df5a79a5b207
Vladimir Marko [Thu, 7 May 2015 11:25:40 +0000 (12:25 +0100)]
Quick: Abolish kMirOpCheckPart2.
The tricks played with kMirOpCheckPart2 are making the
native GC map generation unnecessarily complex. They have
caused problems in the past and now there is bad interaction
with the DCE. Rather than fixing it time and again, remove
the pseudo-insn.
(The whole purpose of those tricks seems to be to allow the
register tracking to be used for the throwing insn before
resetting the tracking for the next block. However, it's
questionable whether that's better than processing the
throwing insn with the subsequent instructions.)
Bug:
20736048
Change-Id: I4767e4609914d3b6990da4416e5093e4ca209780
Narayan Kamath [Thu, 7 May 2015 14:54:45 +0000 (14:54 +0000)]
Merge "Fix broken checks in IsValidPartOfMemberNameUtf8Slow."
Vladimir Marko [Thu, 7 May 2015 14:53:41 +0000 (15:53 +0100)]
Quick: Fix DCE to rename SSA regs for degenerate Phis.
If we're inserting a new Phi and all its inputs are the same
SSA reg (for example, we allow a single-input Phi), some
subsequent insn may actually refer to that reg, so we need
to rename it to keep the graph in a consistent state.
Change-Id: Ic6a1907c3138f4a7d3b13f9e58e9107ca2d92f17
Sebastien Hertz [Thu, 7 May 2015 14:22:34 +0000 (14:22 +0000)]
Merge "JDWP: properly combine location events"
Narayan Kamath [Wed, 6 May 2015 13:55:43 +0000 (14:55 +0100)]
Fix broken checks in IsValidPartOfMemberNameUtf8Slow.
GetUtf16FromUtf8 returns a surrogate pair only if it encounters
a 4-byte UTF sequence. Three byte UTF sequences will only return the
first or second half of a pair so we need to check for that
explicitly.
bug:
20844537
(cherry picked from commit
3ba8671d60061359fd833f60f7a9dca14878cc0b)
Change-Id: I2e2a4f9f736cd11050a2b634b3bb27b75a0ee0ba
Nicolas Geoffray [Thu, 7 May 2015 10:57:03 +0000 (10:57 +0000)]
Merge "Use a growable array instead of an environment during SSA."
Nicolas Geoffray [Thu, 7 May 2015 10:46:05 +0000 (11:46 +0100)]
Use a growable array instead of an environment during SSA.
Using an environment was convenient because it contains
a growable array. But there's no need for the environment
abstraction when being used as a temporary holder for values
of locals.
Change-Id: Idf2883fe4b8f97a31ee70b3627c1bdd23ebfff0e
Nicolas Geoffray [Thu, 7 May 2015 08:57:23 +0000 (08:57 +0000)]
Merge "Relax the only one back-edge restriction."
Nicolas Geoffray [Tue, 5 May 2015 16:02:20 +0000 (17:02 +0100)]
Relax the only one back-edge restriction.
The rule is in the way for better register allocation, as
it creates an artificial join point between multiple paths.
Change-Id: Ia4392890f95bcea56d143138f28ddce6c572ad58
Nicolas Geoffray [Thu, 7 May 2015 08:15:41 +0000 (08:15 +0000)]
Merge "No need to relocate the core image for the art script."
Andreas Gampe [Thu, 7 May 2015 03:50:01 +0000 (03:50 +0000)]
Merge "ART: Fix mips64 jni bugs."
Douglas Leung [Fri, 1 May 2015 02:22:49 +0000 (19:22 -0700)]
ART: Fix mips64 jni bugs.
For mips64, 32-bits loads can be zero extended or sign extended to
64-bits. The extension type must match the data type to be loaded.
Also re-enable mips64 generic jni testing.
Change-Id: I9cabaf80b4fde63d9868fccd74593b36d1c324e8
Jeff Hao [Thu, 7 May 2015 01:29:19 +0000 (01:29 +0000)]
Merge "In quick compiler, force string init invoke to be fast path."
Jeff Hao [Thu, 7 May 2015 00:41:32 +0000 (17:41 -0700)]
In quick compiler, force string init invoke to be fast path.
Was running into an issue where a secondary dex file was falling back on
the quick compiler, and IsFastInvoke returned 0 because the
referrer_class was nullptr, causing the string init to be slow path. The
string init technically does not have to be fast path, but there's no
reason to duplicate the logic to call off a thread pointer on the slow
path.
Bug:
20870917
(cherry picked from commit I47e1524d939eb7e9b1da8186092fafc6e925009e)
Change-Id: Ieacd965943759de2b075c30e03cf0a71863f499e
Andreas Gampe [Wed, 6 May 2015 23:53:00 +0000 (23:53 +0000)]
Merge "Fix mips64 bugs."
Nicolas Geoffray [Wed, 6 May 2015 17:38:19 +0000 (18:38 +0100)]
No need to relocate the core image for the art script.
Change-Id: Idd540175e197602e318eeb3764f552372aadce1f
Vladimir Marko [Wed, 6 May 2015 15:19:23 +0000 (15:19 +0000)]
Merge "Quick: Inline synthetic accessors generated by jack."
Vladimir Marko [Wed, 6 May 2015 13:09:04 +0000 (14:09 +0100)]
Quick: Inline synthetic accessors generated by jack.
While javac names synthetic accessors "access$nnn", jack
names them "-getN", "-putN" and "-wrapN". For simplicity,
treat all methods starting with "-" as synthetic accessors.
Bug:
20873367
Change-Id: I67990a6c2ef1d25dafe460ef70143a113bb5b7da
Nicolas Geoffray [Wed, 6 May 2015 14:02:23 +0000 (14:02 +0000)]
Merge "Bump jdwp timeout to 12 minutes."
Nicolas Geoffray [Wed, 6 May 2015 13:57:09 +0000 (14:57 +0100)]
Bump jdwp timeout to 12 minutes.
A run on volantis now is around 10 minutes.
Change-Id: I6e1f436d71da6eec55e984f7af99ba34438e49fb
Nicolas Geoffray [Wed, 6 May 2015 08:23:00 +0000 (08:23 +0000)]
Merge "Re-enable JDWP tests on volantis."
Nicolas Geoffray [Wed, 6 May 2015 08:19:32 +0000 (09:19 +0100)]
Re-enable JDWP tests on volantis.
Change-Id: Ibf1d16c9830155526cee38e242a4de9a3d5ed943
Sebastien Hertz [Wed, 6 May 2015 08:07:06 +0000 (08:07 +0000)]
Merge "Fix instrumentation exit stub for arm64"
Sebastien Hertz [Tue, 5 May 2015 18:03:50 +0000 (20:03 +0200)]
Fix instrumentation exit stub for arm64
Fixes bad offset to restore register x21.
Bug:
20798393
(cherry picked from commit
a538effb3f848bfec232c55f167b9f35b416948f)
Change-Id: I030d848ab0f46043e86f53abae204463f0aaccbe
Andreas Gampe [Wed, 6 May 2015 01:01:27 +0000 (01:01 +0000)]
Merge "Fix Mips64 utils.h typo"
Duane Sand [Tue, 5 May 2015 21:48:43 +0000 (14:48 -0700)]
Fix Mips64 utils.h typo
Include of art's utils.h was mistyped as util.h, and instead
brought in external/icu/icu4c/source/common/util.h,
which caused art build failures from -Wdeprecated warnings
when Mips64 libart is compiled with clang.
Change-Id: I9370c4dc041eaecc5d5a1490ec23034ece4322a9
Hiroshi Yamauchi [Tue, 5 May 2015 22:13:32 +0000 (22:13 +0000)]
Merge "Temporarily suppress 098-ddmc for the read barrier config."
Hiroshi Yamauchi [Tue, 5 May 2015 20:36:39 +0000 (13:36 -0700)]
Temporarily suppress 098-ddmc for the read barrier config.
Bug:
20720510
Change-Id: Ie8c159767654837c02f0484f4dda569bb0118a03
Roland Levillain [Tue, 5 May 2015 13:45:56 +0000 (13:45 +0000)]
Merge "Revert "Revert "Revert "Revert "[optimizing] Improve x86 shifts"""""
Nicolas Geoffray [Tue, 5 May 2015 09:26:29 +0000 (09:26 +0000)]
Merge "Find better split positions in the register allocator."
Nicolas Geoffray [Wed, 29 Apr 2015 13:16:00 +0000 (14:16 +0100)]
Find better split positions in the register allocator.
In a standard if/else control flow graph, this avoids
doing a move in one branch if the other branch decided
to move an interval.
This also needs a new register hint kind, which is what
was the location of the interval at the predecessor block.
Change-Id: I18b78264587b4d693540fbb5e014d12df2add3e2
Andreas Gampe [Tue, 5 May 2015 01:31:33 +0000 (01:31 +0000)]
Merge "ART: Fix double-free in oatdump"
Andreas Gampe [Tue, 5 May 2015 01:25:23 +0000 (18:25 -0700)]
ART: Fix double-free in oatdump
The ImageDumper doesn't own the OatDumperOptions.
Bug:
20818721
Change-Id: Iea11ada8fb6418b226d39b33c252a834c42e655e
Andreas Gampe [Mon, 4 May 2015 22:13:05 +0000 (22:13 +0000)]
Merge "ART: Emit debug info when app is debuggable"
Andreas Gampe [Mon, 4 May 2015 15:33:31 +0000 (08:33 -0700)]
ART: Emit debug info when app is debuggable
Emit debug symbols and CFI when dex2oat is compiling with the
--debuggable flag.
Bug:
17011129
(cherry picked from commit
8484d23186c229e2927441f85ae819abb4996072)
Change-Id: I0afab1e46abd819eded2b823580e766619497393
Christopher Ferris [Mon, 4 May 2015 21:58:44 +0000 (21:58 +0000)]
Merge "Fix mismatched new[]/delete."
Mathieu Chartier [Mon, 4 May 2015 19:12:45 +0000 (19:12 +0000)]
Merge "Delete invalid DCHECK"
Christopher Ferris [Mon, 27 Apr 2015 22:19:41 +0000 (15:19 -0700)]
Fix mismatched new[]/delete.
Another two cases where a new[] is used but only a delete occurs.
Bug:
18202869
Change-Id: If68264807150f3a9783e44ef8823cc366bff8df2
Mathieu Chartier [Mon, 4 May 2015 18:46:25 +0000 (11:46 -0700)]
Delete invalid DCHECK
We can have large objects mapped at address 0xebad____.
Change-Id: I9e27d4948e7e853b4af6eb1b36dbfec6d4d7a99a
Mathieu Chartier [Mon, 4 May 2015 18:17:40 +0000 (18:17 +0000)]
Merge "Improve JNI registration failure logging"
Mathieu Chartier [Mon, 4 May 2015 17:18:24 +0000 (10:18 -0700)]
Improve JNI registration failure logging
Print INTERNAL_FATAL instead of ERROR, print the
"Failed to register native method" message last.
Bug:
13885477
Change-Id: I9f1a7ea45bd926f3984b8008d84c75e676a1ed10
Mathieu Chartier [Mon, 4 May 2015 17:10:47 +0000 (17:10 +0000)]
Merge "Fix NanoSleep and add test"
Mathieu Chartier [Mon, 4 May 2015 16:53:43 +0000 (09:53 -0700)]
Fix NanoSleep and add test
Fixed a bug where tv_nsec was't between 0 and 999,999,999.
Bug:
14450052
Change-Id: I30b29a716bfa63c6b57d589dd1102d2ca934c061
Mark P Mendell [Wed, 29 Apr 2015 14:56:17 +0000 (14:56 +0000)]
Revert "Revert "Revert "Revert "[optimizing] Improve x86 shifts""""
This reverts commit
2a7a1d7808f003bea908023ebd11eb442d2fca39.
Fix the problem that a long long >> 63 got the wrong answer. The
problem was that a shr was used instead of a sar.
Change-Id: I0327f79c718016ddec9272a605fc50ec15ec4566
Mathieu Chartier [Sun, 3 May 2015 22:26:22 +0000 (22:26 +0000)]
Merge "Add some more DISALLOW_COPY_AND_ASSIGN"
Mathieu Chartier [Sun, 3 May 2015 22:20:23 +0000 (15:20 -0700)]
Add some more DISALLOW_COPY_AND_ASSIGN
May help prevent bugs maybe.
Change-Id: Ie73d469dfcd078492ecb3aa28682b42707221202
Christopher Ferris [Sat, 2 May 2015 00:20:15 +0000 (00:20 +0000)]
Merge "Let the map function compute the relative pc."
Christopher Ferris [Fri, 1 May 2015 23:03:49 +0000 (16:03 -0700)]
Let the map function compute the relative pc.
The new packed relocations linker option creates an elf with a non-zero
load base. It's no longer an easy task to compute the relative pc yourself
so call the helper function to do it for us.
Bug:
20687795
(cherry picked from commit
332ef327c2b1a5e1774ba0d1da23e07303002af9)
Change-Id: I3d61c767f21a3f240a14f9e8bc6bee53b6cdb60d
Hiroshi Yamauchi [Fri, 1 May 2015 23:22:51 +0000 (23:22 +0000)]
Merge "Request full/partial GC type from VMRuntime.requestConcurrentGC()."
Andreas Gampe [Fri, 1 May 2015 23:13:38 +0000 (23:13 +0000)]
Merge "ART: Fix max build"
Andreas Gampe [Fri, 1 May 2015 23:11:04 +0000 (16:11 -0700)]
ART: Fix max build
Change-Id: Id1b9c0ee05b61195d1c1f09a8938df3110c2f2b3
Chih-hung Hsieh [Fri, 1 May 2015 22:30:07 +0000 (22:30 +0000)]
Merge "Re-enable clang for Mips/Mips64 targets."
Hiroshi Yamauchi [Fri, 1 May 2015 21:33:19 +0000 (14:33 -0700)]
Request full/partial GC type from VMRuntime.requestConcurrentGC().
Bug:
20554807
Change-Id: I1cd855507c3f4e191035dbc2c429e1b8b344d81b
Douglas Leung [Wed, 29 Apr 2015 00:22:29 +0000 (17:22 -0700)]
Fix mips64 bugs.
There are 2 bugs here. First is Method* is computed twice. The
second is the wrong runtime callee save frame offset is being
used in computing Method*.
Change-Id: Ica23585a08be480a54d0cdd17eeca8027061b3f3
Duane Sand [Fri, 1 May 2015 18:34:51 +0000 (11:34 -0700)]
Re-enable clang for Mips/Mips64 targets.
The build-time errors described in
https://android-review.googlesource.com/#/c/120512
are no longer happening.
BUG:
18807290
BUG:
18789639
Change-Id: I195bbb7d102fecd6a6e6a3357b0863dd6fddb01f
Hiroshi Yamauchi [Fri, 1 May 2015 20:35:57 +0000 (20:35 +0000)]
Merge "Print memory maps on GC crash."
Andreas Gampe [Fri, 1 May 2015 20:34:11 +0000 (20:34 +0000)]
Merge "Add binary search table to .eh_frame_hdr"
David Srbecky [Thu, 30 Apr 2015 18:57:35 +0000 (19:57 +0100)]
Add binary search table to .eh_frame_hdr
The addresses in the search table must be relative to the start
of .eh_frame_hdr which results in yet another pointer type to patch.
I have moved the Patch method back to elf_writer_quick where
it can be specialized to one of the three pointer types.
The .eh_frame_hdr takes around 17% of .eh_frame now.
Change-Id: I4770d1355ded6cdff9489c33380f6b06c4e3f9fe
Andreas Gampe [Fri, 1 May 2015 20:22:57 +0000 (20:22 +0000)]
Merge "Do not write CFI and symbols for deduplicate methods."
Hiroshi Yamauchi [Fri, 1 May 2015 18:50:24 +0000 (11:50 -0700)]
Print memory maps on GC crash.
Bug:
20557050
Change-Id: I0fc35bace77b11181f06199c121bc4e246d02100
Mathieu Chartier [Fri, 1 May 2015 20:19:14 +0000 (20:19 +0000)]
Merge "Change invalid root from LOG(ERROR) to LOG(INTERNAL_FATAL)"
Mathieu Chartier [Fri, 1 May 2015 20:00:23 +0000 (13:00 -0700)]
Change invalid root from LOG(ERROR) to LOG(INTERNAL_FATAL)
INTERNAL_FATAL is more likely to remain in bug reports.
Bug:
20736048
Change-Id: I518f079d8d1839e22b3595e807730edf36318f1d
David Srbecky [Fri, 1 May 2015 14:00:40 +0000 (15:00 +0100)]
Do not write CFI and symbols for deduplicate methods.
There is no need to have multiple symbols for a given address
since libunwind still has to pick only one to print.
Likewise, there is no need to duplicate the CFI.
There is fair number of duplicate methods in the boot image,
so this saves over 20% from those debug sections.
Change-Id: Ib4390150257d009a6303b084076750ce56afed60
Calin Juravle [Thu, 30 Apr 2015 18:28:21 +0000 (19:28 +0100)]
Skip compilation when falling-through out of method code.
Bug:
19988134
Change-Id: I68638ce9551848a67af587595f264b51f976df11
Nicolas Geoffray [Fri, 1 May 2015 09:10:56 +0000 (09:10 +0000)]
Merge "Update the remaining input index of phis after deleting an input."
Nicolas Geoffray [Mon, 27 Apr 2015 23:52:43 +0000 (00:52 +0100)]
Update the remaining input index of phis after deleting an input.
bug:
20715803
bug:
20690906
Change-Id: Iaf08f0c30d629e766be2b04815dc3e38b6e7ff35
David Srbecky [Thu, 30 Apr 2015 16:08:32 +0000 (16:08 +0000)]
Merge "Move .eh_frame to the end of ELF file."
David Srbecky [Tue, 28 Apr 2015 18:43:56 +0000 (19:43 +0100)]
Move .eh_frame to the end of ELF file.
Move .eh_frame to the end together with other debug sections.
This should make it easier to remove it using standard strip tools.
Bug:
20556771
Change-Id: I8303ccb053aee50d53fb193819d345c91f1e5b75
David Srbecky [Thu, 30 Apr 2015 16:07:16 +0000 (16:07 +0000)]
Merge "Major refactoring of ElfBuilder."
David Srbecky [Thu, 30 Apr 2015 16:07:06 +0000 (16:07 +0000)]
Merge "Minor refactoring of ElfBuilder."
David Srbecky [Wed, 22 Apr 2015 18:40:27 +0000 (19:40 +0100)]
Major refactoring of ElfBuilder.
Simplify ElfBuilder by removing duplicated or redundant code.
Many of the repeated code patterns were replaced by just
looping over the list of all sections.
Methods Init() and Write() have been merged into one.
The split between those was rather arbitrary, but it was there
for a reason. It allowed creation of raw sections between
the calls which may have depended on layout decisions done in
Init(), but not in Write() (e.g. knowing of offset of .text).
This has been replaced by more generic solution.
All sections are asked about their size first and complete
file layout is calculated. Then the sections are asked to
write their content (potentially using the layout information).
This should be pure refactoring CL - the compiler should
produce bit for bit identical output as before.
Change-Id: I281d13d469801bd8288b36b360d200d98a3e92d7
Nicolas Geoffray [Thu, 30 Apr 2015 11:16:06 +0000 (11:16 +0000)]
Merge "Revert "GVN final fields even with side effects.""
Nicolas Geoffray [Thu, 30 Apr 2015 11:15:40 +0000 (11:15 +0000)]
Revert "GVN final fields even with side effects."
This reverts commit
781733632637db98d79dfffad72bf063be3259be.
Change-Id: Id7c4591f6b8190921852044b278d11627457c570
Nicolas Geoffray [Thu, 30 Apr 2015 10:21:19 +0000 (10:21 +0000)]
Merge "GVN final fields even with side effects."