re PR lto/50165 (Huge build time regression (Firefox lto build))

PR lto/50165
	* lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
	don't call strlen twice, use memcpy.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r178118
This commit is contained in:
Michael Matz 2011-08-26 16:02:17 +00:00 committed by Michael Matz
parent f13677ba99
commit 0b11d702db
2 changed files with 12 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2011-08-26 Michael Matz <matz@suse.de>
Jakub Jelinek <jakub@redhat.com>
PR lto/50165
* lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
don't call strlen twice, use memcpy.
2011-08-26 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/bmi2intrin.h: Allow in <immintrin.h>.

View File

@ -98,21 +98,22 @@ canon_file_name (const char *string)
{
void **slot;
struct string_slot s_slot;
size_t len = strlen (string);
s_slot.s = string;
s_slot.len = strlen (string);
s_slot.len = len;
slot = htab_find_slot (file_name_hash_table, &s_slot, INSERT);
if (*slot == NULL)
{
size_t len;
char *saved_string;
struct string_slot *new_slot;
len = strlen (string);
saved_string = (char *) xmalloc (len + 1);
new_slot = XCNEW (struct string_slot);
strcpy (saved_string, string);
memcpy (saved_string, string, len + 1);
new_slot->s = saved_string;
new_slot->len = len;
*slot = new_slot;
return saved_string;
}