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] |
IA-64 bootstraps broke when regrename became a default optimization option. This patch makes it work again. The problem here is that the regrename pass uses the constraints to identify output operands, and then it gives special treatment to output operands that occur inside a COND_EXEC. So any target which uses COND_EXEC must make sure that all output operands have = constraints. There is a common convention to leave constraints off of call_value patterns, so that they will accept any function result, including stuff that doesn't look like a valid operand, such as a PARALLEL. This breaks regrename if you end up with an conditionally executed call_value insn. This fixes the problem by adding the missing constaints. Since calls must accept any operand, I have to use X, even though using it here looks a little funny. With this patch, IA-64 bootstraps now work again. My build failed in libada, but that was apparently because a file was left out of the last check in. When I tried a remake, I got an error from libada about @gprel relocs against dynamic symbols. This happens when we link non-pic code into a shared library. This seems to be a problem with the structure of libada. It compiles every file twice in the same directory with the same name. First it compiles all files with -fPIC and creates the shared library. Then it compiles all files without -fPIC and creates the static library. If you try a rebuild, then it tries to relink the shared library and fails because now we have non-pic .o files. The -fPIC and non-pic object files should be given different names so that they don't conflict. I am running make check, but decided to check the patch in before this finishes because this fixes a bootstrap problem. -- Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
Attachment:
patch.ia64.regrename
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |