From dbf0aee6ae7fc32fab077d12d42c8828a51dd6cc Mon Sep 17 00:00:00 2001 From: "danno@chromium.org" Date: Thu, 14 Jul 2011 09:51:52 +0000 Subject: [PATCH] simplification to HClampToUint8 * src/hydrogen-instructions.h (HClampToUint8): Don't mark as having flexible representation; instead the output is always an Integer32. There is no input representation restriction, so we can still perform input-specific truncation. I tested by looking at the --print-code of var a = PixelArray(1000000) function fill(a,x) { for (var i=0; i. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/hydrogen-instructions.h | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h index 46d5393c5a..93a7073b6a 100644 --- a/src/hydrogen-instructions.h +++ b/src/hydrogen-instructions.h @@ -1123,40 +1123,19 @@ class HChange: public HUnaryOperation { class HClampToUint8: public HUnaryOperation { public: explicit HClampToUint8(HValue* value) - : HUnaryOperation(value), - input_rep_(Representation::None()) { - SetFlag(kFlexibleRepresentation); - set_representation(Representation::Tagged()); + : HUnaryOperation(value) { + set_representation(Representation::Integer32()); SetFlag(kUseGVN); } virtual Representation RequiredInputRepresentation(int index) const { - return input_rep_; - } - - virtual Representation InferredRepresentation() { - // TODO(danno): Inference on input types should happen separately from - // return representation. - Representation new_rep = value()->representation(); - if (input_rep_.IsNone()) { - if (!new_rep.IsNone()) { - input_rep_ = new_rep; - return Representation::Integer32(); - } else { - return Representation::None(); - } - } else { - return Representation::Integer32(); - } + return Representation::None(); } DECLARE_CONCRETE_INSTRUCTION(ClampToUint8) protected: virtual bool DataEquals(HValue* other) { return true; } - - private: - Representation input_rep_; };