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]

[PATCH] FIx PR middle-end/28075 inliner produces unnecessary type conversions


The inliner currently produces useless type conversions from a
type to its main variant type.  We don't remove them from the IR
after creating them.  SRA in turn cannot use block copy on struct
which in turn causes us to have more stack slots, etc when expanding.
Anyways this patch removes the unnecessary type conversions before they
are added to the IR.

OK for the mainline and 4.1?  This is a regression from 4.0.x where we
don't have the unnecessary type conversion and it also makes PR 28062
latent in that the testcase there no longer shows up as an ICE.  It also
improves the compile time and memory usage for PR 28071.

Oh bootstrapped and tested on x86_64-linux-gnu with no regressions.

:ADDPATCH inline/middle-end:

Thanks,
Andrew Pinski

ChangeLog:
	* tree-inline.c (setup_one_parameter): Strip useless
	type conversion before adding it to the IR.
	(declare_return_variable): Likewise.


Attachment: t.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]