# HG changeset patch # User Josef Eisl # Date 1454498299 -3600 # Node ID 4d74344a78a539c7655982072689ae4ff7f5c125 # Parent 0fdbe9bbb647551ab648376bd003c9c41c9a8ace Move OutOfRegistersException to c.o.g.lir.alloc. diff -r 0fdbe9bbb647 -r 4d74344a78a5 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/OutOfRegistersException.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/OutOfRegistersException.java Wed Feb 03 12:18:19 2016 +0100 @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.graal.lir.alloc; + +import static com.oracle.graal.compiler.common.GraalOptions.RegisterPressure; +import static com.oracle.graal.compiler.common.alloc.RegisterAllocationConfig.ALL_REGISTERS; + +import com.oracle.graal.lir.BailoutAndRestartBackendException; +import com.oracle.graal.lir.phases.LIRSuites; +import com.oracle.graal.options.OptionValue; +import com.oracle.graal.options.OptionValue.OverrideScope; + +/** + * Thrown if the register allocator runs out of registers. This should never happen in normal mode. + */ +public class OutOfRegistersException extends BailoutAndRestartBackendException { + + private static final long serialVersionUID = -3479786650143432195L; + + private final String description; + + public OutOfRegistersException(String msg) { + super(msg); + this.description = ""; + } + + public OutOfRegistersException(Throwable cause, String msg) { + super(cause, msg); + this.description = ""; + } + + public OutOfRegistersException(boolean permanent, String msg) { + super(permanent, msg); + this.description = ""; + } + + public OutOfRegistersException(String msg, String description) { + super(msg); + this.description = description; + } + + public OutOfRegistersException(Throwable cause, String msg, String description) { + super(cause, msg); + this.description = description; + } + + public OutOfRegistersException(boolean permanent, String msg, String description) { + super(permanent, msg); + this.description = description; + } + + public String getDescription() { + return description; + } + + @Override + public boolean shouldRestart() { + return RegisterPressure.getValue() != null && !RegisterPressure.getValue().equals(ALL_REGISTERS); + } + + @Override + public OverrideScope getOverrideScope() { + return OptionValue.override(RegisterPressure, ALL_REGISTERS); + } + + @Override + public LIRSuites updateLIRSuites(LIRSuites lirSuites) { + return lirSuites; + } +} diff -r 0fdbe9bbb647 -r 4d74344a78a5 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanWalker.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanWalker.java Wed Feb 03 11:03:55 2016 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScanWalker.java Wed Feb 03 12:18:19 2016 +0100 @@ -43,6 +43,7 @@ import com.oracle.graal.debug.Indent; import com.oracle.graal.lir.LIRInstruction; import com.oracle.graal.lir.StandardOp.ValueMoveOp; +import com.oracle.graal.lir.alloc.OutOfRegistersException; import com.oracle.graal.lir.alloc.lsra.Interval.RegisterBinding; import com.oracle.graal.lir.alloc.lsra.Interval.RegisterPriority; import com.oracle.graal.lir.alloc.lsra.Interval.SpillState; diff -r 0fdbe9bbb647 -r 4d74344a78a5 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/OutOfRegistersException.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/OutOfRegistersException.java Wed Feb 03 11:03:55 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.oracle.graal.lir.alloc.lsra; - -import static com.oracle.graal.compiler.common.GraalOptions.RegisterPressure; -import static com.oracle.graal.compiler.common.alloc.RegisterAllocationConfig.ALL_REGISTERS; - -import com.oracle.graal.lir.BailoutAndRestartBackendException; -import com.oracle.graal.lir.phases.LIRSuites; -import com.oracle.graal.options.OptionValue; -import com.oracle.graal.options.OptionValue.OverrideScope; - -public class OutOfRegistersException extends BailoutAndRestartBackendException { - - private static final long serialVersionUID = -3479786650143432195L; - - private final String description; - - public OutOfRegistersException(String msg) { - super(msg); - this.description = ""; - } - - public OutOfRegistersException(Throwable cause, String msg) { - super(cause, msg); - this.description = ""; - } - - public OutOfRegistersException(boolean permanent, String msg) { - super(permanent, msg); - this.description = ""; - } - - public OutOfRegistersException(String msg, String description) { - super(msg); - this.description = description; - } - - public OutOfRegistersException(Throwable cause, String msg, String description) { - super(cause, msg); - this.description = description; - } - - public OutOfRegistersException(boolean permanent, String msg, String description) { - super(permanent, msg); - this.description = description; - } - - public String getDescription() { - return description; - } - - @Override - public boolean shouldRestart() { - return RegisterPressure.getValue() != null && !RegisterPressure.getValue().equals(ALL_REGISTERS); - } - - @Override - public OverrideScope getOverrideScope() { - return OptionValue.override(RegisterPressure, ALL_REGISTERS); - } - - @Override - public LIRSuites updateLIRSuites(LIRSuites lirSuites) { - return lirSuites; - } -} diff -r 0fdbe9bbb647 -r 4d74344a78a5 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/lsra/TraceLinearScanWalker.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/lsra/TraceLinearScanWalker.java Wed Feb 03 11:03:55 2016 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/lsra/TraceLinearScanWalker.java Wed Feb 03 12:18:19 2016 +0100 @@ -47,7 +47,7 @@ import com.oracle.graal.lir.StandardOp.BlockEndOp; import com.oracle.graal.lir.StandardOp.LabelOp; import com.oracle.graal.lir.StandardOp.ValueMoveOp; -import com.oracle.graal.lir.alloc.lsra.OutOfRegistersException; +import com.oracle.graal.lir.alloc.OutOfRegistersException; import com.oracle.graal.lir.alloc.trace.lsra.TraceInterval.RegisterPriority; import com.oracle.graal.lir.alloc.trace.lsra.TraceInterval.SpillState; import com.oracle.graal.lir.alloc.trace.lsra.TraceInterval.State;