diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2019-06-06 23:34:00 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2019-06-06 23:34:00 +0000 |
commit | 93cbebde76ac7de2d69b223d99acb39e0370687f (patch) | |
tree | 66c133d573a219583b5c460b329b900c18ee0ac6 /gcc/go/gofrontend/expressions.h | |
parent | 5e664ed0938357392823d2a43be8a196526dd97c (diff) | |
download | gcc-93cbebde76ac7de2d69b223d99acb39e0370687f.zip gcc-93cbebde76ac7de2d69b223d99acb39e0370687f.tar.gz gcc-93cbebde76ac7de2d69b223d99acb39e0370687f.tar.bz2 |
compiler: permit inlining temporary statements and references
This increases the number of inlinable functions from 439 to 455.
An example is math/bits.Mul32, which uses temporaries to handle the
tuple assignment.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180837
From-SVN: r272022
Diffstat (limited to 'gcc/go/gofrontend/expressions.h')
-rw-r--r-- | gcc/go/gofrontend/expressions.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/expressions.h b/gcc/go/gofrontend/expressions.h index fc1c5a8..09c71ad 100644 --- a/gcc/go/gofrontend/expressions.h +++ b/gcc/go/gofrontend/expressions.h @@ -1531,6 +1531,9 @@ class Temporary_reference_expression : public Expression set_is_lvalue() { this->is_lvalue_ = true; } + static Expression* + do_import(Import_function_body*, Location); + protected: Type* do_type(); @@ -1543,6 +1546,13 @@ class Temporary_reference_expression : public Expression do_copy() { return make_temporary_reference(this->statement_, this->location()); } + int + do_inlining_cost() const + { return 1; } + + void + do_export(Export_function_body*) const; + bool do_is_addressable() const { return true; } |