This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Fri, 2012-02-24 at 09:58 +0100, Richard Guenther wrote:On Thu, Feb 23, 2012 at 10:11 PM, Aldy Hernandez<aldyh@redhat.com> wrote:On 02/23/12 12:19, Aldy Hernandez wrote:
about hit me. Instead now I save all loads in a function and iterate through them in a brute force way. I'd like to rewrite this into a hash of some sort, but before I go any further I'm interested to know if the main idea is ok.
For the record, it may be ideal to reuse some of the iterations we already do over the function's basic blocks, so we don't have to iterate yet again over the IL stream. Though it may complicate the pass unnecessarily.
It's definitely ugly that you need to do this.
Indeed. But that's simply the price we have to pay for making publication with transactions easier for the programmer yet still at acceptable performance.
Also note that what we primarily have to care about for this PR is to not hoist loads _within_ transactions if they would violate publication
safety. I didn't have time to look at Aldy's patch yet, but a first safe and conservative way would be to treat transactions as full transformation barriers, and prevent publication-safety-violating transformations _within_ transactions. Which I would prefer until we're confident that we understood all of it.
For hoisting out of or across transactions, we have to reason about more than just publication safety.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |