Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
3dac68b9
Commit
3dac68b9
authored
Jan 14, 2011
by
Ian Lance Taylor
Committed by
Ian Lance Taylor
Jan 14, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move clearing of flag_strict_aliasing to gcc interface.
From-SVN: r168774
parent
632469d0
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
46 additions
and
20 deletions
+46
-20
gcc/go/ChangeLog
+9
-0
gcc/go/Make-lang.in
+5
-4
gcc/go/go-backend.c
+23
-2
gcc/go/go-c.h
+3
-1
gcc/go/gofrontend/gogo-tree.cc
+0
-12
gcc/go/gofrontend/unsafe.cc
+6
-1
No files found.
gcc/go/ChangeLog
View file @
3dac68b9
2011-01-13 Ian Lance Taylor <iant@google.com>
* go-backend.c: Include "rtl.h" and "target.h".
(go_imported_unsafe): New function.
* go-c.h (go_imported_unsafe): Declare.
* Make-lang.in (go/go-backend.o): Depend on $(RTL_H).
(go/gogo-tree.o): Remove dependency on $(RTL_H).
(go/unsafe.o): Depend on $(GO_C_H).
2010-12-31 Joern Rennecke <amylaar@spamcop.net>
PR go/47113
...
...
gcc/go/Make-lang.in
View file @
3dac68b9
# Make-lang.in -- Top level -*- makefile -*- fragment for gcc Go frontend.
# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
# Copyright (C) 2009, 2010
, 2011
Free Software Foundation, Inc.
# This file is part of GCC.
...
...
@@ -221,7 +221,7 @@ GO_EXPRESSIONS_H = go/gofrontend/expressions.h go/gofrontend/operator.h
GO_IMPORT_H
=
go/gofrontend/import.h go/gofrontend/export.h
go/go-backend.o
:
go/go-backend.c $(CONFIG_H) $(SYSTEM_H) coretypes.h
\
$(T
REE_H) $(TM_H) $(TM_P
_H)
$(T
M_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(TARGET
_H)
go/go-lang.o
:
go/go-lang.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(OPTS_H)
\
$(TREE_H) $(GIMPLE_H) $(GGC_H) $(TOPLEV_H) debug.h options.h
\
...
...
@@ -254,7 +254,7 @@ go/go-dump.o: go/gofrontend/go-dump.cc $(GO_SYSTEM_H) $(GO_C_H) \
go/gofrontend/go-dump.h
go/gogo-tree.o
:
go/gofrontend/gogo-tree.cc $(GO_SYSTEM_H) $(TOPLEV_H)
\
$(TREE_H) $(GIMPLE_H) tree-iterator.h $(CGRAPH_H) langhooks.h
\
convert.h output.h $(DIAGNOSTIC_H) $(
RTL_H) $(
GO_TYPES_H)
\
convert.h output.h $(DIAGNOSTIC_H) $(GO_TYPES_H)
\
$(GO_EXPRESSIONS_H) $(GO_STATEMENTS_H) $(GO_GOGO_H)
go/gogo.o
:
go/gofrontend/gogo.cc $(GO_SYSTEM_H) $(GO_C_H)
\
go/gofrontend/go-dump.h $(GO_LEX_H) $(GO_TYPES_H) $(GO_STATEMENTS_H)
\
...
...
@@ -277,4 +277,5 @@ go/types.o: go/gofrontend/types.cc $(GO_SYSTEM_H) $(TOPLEV_H) intl.h $(TREE_H) \
$(GIMPLE_H) $(REAL_H) convert.h $(GO_C_H) $(GO_GOGO_H)
\
go/gofrontend/operator.h $(GO_EXPRESSIONS_H) $(GO_STATEMENTS_H)
\
go/gofrontend/export.h $(GO_IMPORT_H) $(GO_TYPES_H)
go/unsafe.o
:
go/gofrontend/unsafe.cc $(GO_SYSTEM_H) $(GO_TYPES_H) $(GO_GOGO_H)
go/unsafe.o
:
go/gofrontend/unsafe.cc $(GO_SYSTEM_H) $(GO_C_H) $(GO_TYPES_H)
\
$(GO_GOGO_H)
gcc/go/go-backend.c
View file @
3dac68b9
/* go-backend.c -- Go frontend interface to gcc backend.
Copyright (C) 2010 Free Software Foundation, Inc.
Copyright (C) 2010
, 2011
Free Software Foundation, Inc.
This file is part of GCC.
...
...
@@ -20,9 +20,11 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tree.h"
#include "tm.h"
#include "rtl.h"
#include "tree.h"
#include "tm_p.h"
#include "target.h"
#include "go-c.h"
...
...
@@ -70,3 +72,22 @@ go_trampoline_info (unsigned int *size, unsigned int *alignment)
*
size
=
TRAMPOLINE_SIZE
;
*
alignment
=
TRAMPOLINE_ALIGNMENT
;
}
/* This is called by the Go frontend proper if the unsafe package was
imported. When that happens we can not do type-based alias
analysis. */
void
go_imported_unsafe
(
void
)
{
flag_strict_aliasing
=
false
;
/* This is a real hack. init_varasm_once has already grabbed an
alias set, which we don't want when we aren't doing strict
aliasing. We reinitialize to make it do it again. This should
be OK in practice since we haven't really done anything yet. */
init_varasm_once
();
/* Let the backend know that the options have changed. */
targetm
.
override_options_after_change
();
}
gcc/go/go-c.h
View file @
3dac68b9
/* go-c.h -- Header file for go frontend gcc C interface.
Copyright (C) 2009, 2010 Free Software Foundation, Inc.
Copyright (C) 2009, 2010
, 2011
Free Software Foundation, Inc.
This file is part of GCC.
...
...
@@ -65,6 +65,8 @@ extern unsigned int go_field_alignment (tree);
extern
void
go_trampoline_info
(
unsigned
int
*
size
,
unsigned
int
*
alignment
);
extern
void
go_imported_unsafe
(
void
);
#if defined(__cplusplus) && !defined(ENABLE_BUILD_WITH_CXX)
}
/* End extern "C". */
#endif
...
...
gcc/go/gofrontend/gogo-tree.cc
View file @
3dac68b9
...
...
@@ -22,7 +22,6 @@ extern "C"
#include "convert.h"
#include "output.h"
#include "diagnostic.h"
#include "rtl.h"
#ifndef ENABLE_BUILD_WITH_CXX
}
...
...
@@ -810,17 +809,6 @@ Gogo::write_globals()
// Pass everything back to the middle-end.
if
(
this
->
imported_unsafe_
)
{
// Importing the "unsafe" package automatically disables TBAA.
flag_strict_aliasing
=
false
;
// This is a real hack. init_varasm_once has already grabbed an
// alias set, which we don't want when we aren't going strict
// aliasing. We reinitialize to make it do it again. FIXME.
init_varasm_once
();
}
wrapup_global_declarations
(
vec
,
count
);
cgraph_finalize_compilation_unit
();
...
...
gcc/go/gofrontend/unsafe.cc
View file @
3dac68b9
...
...
@@ -6,6 +6,7 @@
#include "go-system.h"
#include "go-c.h"
#include "types.h"
#include "gogo.h"
...
...
@@ -130,5 +131,9 @@ Gogo::import_unsafe(const std::string& local_name, bool is_local_name_exported,
if
(
add_to_globals
)
this
->
add_named_object
(
no
);
this
->
imported_unsafe_
=
true
;
if
(
!
this
->
imported_unsafe_
)
{
go_imported_unsafe
();
this
->
imported_unsafe_
=
true
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment