2f10a5fb8c236a6786928f0323bd312c3ee9a4cc |
|
25-Jan-2016 |
Mark P Mendell <mark.p.mendell@intel.com> |
Revert "Revert "X86: Use the constant area for more operations."" This reverts commit cf8d1bb97e193e02b430d707d3b669565fababb4. Handle the case of an intrinsic where CurrentMethod is still an input. This will be the case when there are unresolved classes in the hierarchy. Add a test case to confirm that we don't crash when handling Math.abs, which wants to add a pointer to the constant area for the bitmask to be used to remove the sign bit. Enhance 565-checker-condition-liveness to check for the case of deeply nested EmitAtUseSite chains. Change-Id: I022e8b96a32f5bf464331d0c318c56b9d0ac3c9a
|
b3e773eea39a156b3eacf915ba84e3af1a5c14fa |
|
26-Jan-2016 |
David Brazdil <dbrazdil@google.com> |
ART: Implement support for instruction inlining Optimizing HIR contains 'non-materialized' instructions which are emitted at their use sites rather than their defining sites. This was not properly handled by the liveness analysis which did not adjust the use positions of the inputs of such instructions. Despite the analysis being incorrect, the current use cases never produce incorrect code. This patch generalizes the concept of inlined instructions and updates liveness analysis to set the compute use positions correctly. Change-Id: Id703c154b20ab861241ae5c715a150385d3ff621
|
cf8d1bb97e193e02b430d707d3b669565fababb4 |
|
25-Jan-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Revert "X86: Use the constant area for more operations." Hits a DCHECK: dex2oatd F 19461 20411 art/compiler/optimizing/pc_relative_fixups_x86.cc:196] Check failed: !invoke_static_or_direct->HasCurrentMethodInput() This reverts commit dc00454f0b9a134f01f79b419200f4044c2af5c6. Change-Id: Idfcacf12eb9e1dd7e68d95e880fda0f76f90e9ed
|
dc00454f0b9a134f01f79b419200f4044c2af5c6 |
|
30-Oct-2015 |
Mark Mendell <mark.p.mendell@intel.com> |
X86: Use the constant area for more operations. Allow FP HNeg to use the constant area to hold the constant to flip the sign bit. Enhance some math intrinsics to allow the use of the constant area: Abs{Float,Double}, {Min,Max}{FloatFloat,DoubleDouble}. Allow compares of floats/doubles to constants using the constant area. These eliminate almost all uses of loading constants from the stack. Change-Id: Ic4b831565825cbe9f0801b1b53c1013be7c87ae4 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
|
805b3b56c6eb542298db33e0181f135dc9fed3d9 |
|
18-Sep-2015 |
Mark Mendell <mark.p.mendell@intel.com> |
X86 jump tables for PackedSwitch Implement X86PackedSwitch using a jump table of offsets to blocks. The X86PackedSwitch version just adds an input to address the constant area. Change-Id: Id2752a1ee79222493040c6fd0e59aee9a544b76a Bug: 21119474 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
|
154746b84b407cfd166b45e039b62e6a06dc3f39 |
|
06-Oct-2015 |
Calin Juravle <calin@google.com> |
Remove dex_pc's default value from top level HInstruction This clearly hints that the dex_pc is stored in the super class and doesn't need to be reimplemented in subclasses. Change-Id: Ifd4aa95190c4c89367b4dd2cc8ab0ffd263659ac
|
0616ae081e648f4b9b64b33e2624a943c5fce977 |
|
17-Apr-2015 |
Mark Mendell <mark.p.mendell@intel.com> |
[optimizing] Add support for x86 constant area Use the Quick trick of finding the address of the method by calling the next instruction and popping the return address into a register. This trick is used because of the lack of PC-relative addressing in 32 bit mode on the X86. Add a HX86ComputeBaseMethodAddress instruction to trigger generation of the method address, which is referenced by instructions needing access to the constant area. Add a HX86LoadFromConstantTable instruction that takes a HX86ComputeBaseMethodAddress and a HConstant that will be used to load the value when needed. Change Add/Sub/Mul/Div to detect a HX86LoadFromConstantTable right hand side, and generate code that directly references the constant area. Other uses will be added later. Change the inputs to HReturn and HInvoke(s), replacing the FP constants with HX86LoadFromConstantTable instead. This allows values to be loaded from the constant area into the right location. Port the X86_64 assembler constant area handling to the X86. Use the new per-backend optimization framework to do this conversion. Change-Id: I6d235a72238262e4f9ec0f3c88319a187f865932 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
|