summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/code_generator_x86.h
diff options
context:
space:
mode:
authorAart Bik <ajcbik@google.com>2018-02-15 10:42:37 -0800
committerAart Bik <ajcbik@google.com>2018-03-07 09:22:09 -0800
commit1f8d51bc03cbc607ae32fadf3a90f385adeffb95 (patch)
tree70e18902051ce47e0d524525b83709efbe6f250f /compiler/optimizing/code_generator_x86.h
parent7a02c66fd9ed174fc2e49ccc9f582dd661b7de9e (diff)
downloadart-1f8d51bc03cbc607ae32fadf3a90f385adeffb95.tar.gz
art-1f8d51bc03cbc607ae32fadf3a90f385adeffb95.tar.bz2
art-1f8d51bc03cbc607ae32fadf3a90f385adeffb95.zip
Introduce MIN/MAX/ABS as HIR nodes.
Rationale: Having explicit MIN/MAX/ABS operations (in contrast with intrinsics) simplifies recognition and optimization of these common operations (e.g. constant folding, hoisting, detection of saturation arithmetic). Furthermore, mapping conditionals, selectors, intrinsics, etc. (some still TBD) onto these operations generalizes the way they are optimized downstream substantially. Bug: b/65164101 Test: test-art-host,target Change-Id: I69240683339356e5a012802f179298f0b04c6726
Diffstat (limited to 'compiler/optimizing/code_generator_x86.h')
-rw-r--r--compiler/optimizing/code_generator_x86.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator_x86.h b/compiler/optimizing/code_generator_x86.h
index 51e5bca00b..82496d12e5 100644
--- a/compiler/optimizing/code_generator_x86.h
+++ b/compiler/optimizing/code_generator_x86.h
@@ -225,6 +225,8 @@ class InstructionCodeGeneratorX86 : public InstructionCodeGenerator {
void GenerateShlLong(const Location& loc, int shift);
void GenerateShrLong(const Location& loc, int shift);
void GenerateUShrLong(const Location& loc, int shift);
+ void GenerateMinMax(LocationSummary* locations, bool is_min, DataType::Type type);
+ void GenerateMinMaxFP(LocationSummary* locations, bool is_min, DataType::Type type);
void HandleFieldSet(HInstruction* instruction,
const FieldInfo& field_info,