mirror of git://gcc.gnu.org/git/gcc.git
re PR tree-optimization/46805 (ICE: SIGSEGV in optab_for_tree_code (optabs.c:407) with -O -fno-tree-scev-cprop -ftree-vectorize)
PR tree-optimization/46805 PR tree-optimization/46833 * go-lang.c (go_langhook_type_for_mode): Handle vector modes. From-SVN: r167563
This commit is contained in:
parent
128aaeedf4
commit
0e29f7e5af
|
@ -1,3 +1,9 @@
|
|||
2010-12-07 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
PR tree-optimization/46805
|
||||
PR tree-optimization/46833
|
||||
* go-lang.c (go_langhook_type_for_mode): Handle vector modes.
|
||||
|
||||
2010-12-06 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
PR other/46789
|
||||
|
|
|
@ -285,6 +285,20 @@ go_langhook_type_for_size (unsigned int bits, int unsignedp)
|
|||
static tree
|
||||
go_langhook_type_for_mode (enum machine_mode mode, int unsignedp)
|
||||
{
|
||||
/* Go has no vector types. Build them here. FIXME: It does not
|
||||
make sense for the middle-end to ask the frontend for a type
|
||||
which the frontend does not support. However, at least for now
|
||||
it is required. See PR 46805. */
|
||||
if (VECTOR_MODE_P (mode))
|
||||
{
|
||||
tree inner;
|
||||
|
||||
inner = go_langhook_type_for_mode (GET_MODE_INNER (mode), unsignedp);
|
||||
if (inner != NULL_TREE)
|
||||
return build_vector_type_for_mode (inner, mode);
|
||||
return NULL_TREE;
|
||||
}
|
||||
|
||||
return go_type_for_mode (mode, unsignedp);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue