Hello, Duncan.
3-fortran.diff
Get fortran to compile: use the common stubs and rip out
the incomplete collection of dummy routines someone already put in.
With this patch, the fortran build dies at this point:
cc1: llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:367: void llvm::ScheduleDAG::AddOperand(llvm:
:MachineInstr*, llvm::SDOperand, unsigned int, const llvm::TargetInstrDescriptor*, std::map<llvm::SDNode*, unsign
ed int, std::less<llvm::SDNode*>, std::allocator<std::pair<llvm::SDNode* const, unsigned int> > >&): Assertion `R
egMap->getRegClass(VReg) == RC && "Register class of operand and regclass of use don't agree!"' failed.
./../../gcc.llvm.master/libgfortran/runtime/environ.c:619: internal compiler error: Aborted
This looks like PR879. Will you try to build with -D__NO_MATH_INLINES and check, whether the assertion still exists?
Hi Anton,
> 3-fortran.diff
> Get fortran to compile: use the common stubs and rip out
> the incomplete collection of dummy routines someone already put in.
> With this patch, the fortran build dies at this point:
>
> cc1: llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:367: void llvm::ScheduleDAG::AddOperand(llvm:
> :MachineInstr*, llvm::SDOperand, unsigned int, const llvm::TargetInstrDescriptor*, std::map<llvm::SDNode*, unsign
> ed int, std::less<llvm::SDNode*>, std::allocator<std::pair<llvm::SDNode* const, unsigned int> > >&): Assertion `R
> egMap->getRegClass(VReg) == RC && "Register class of operand and regclass of use don't agree!"' failed.
> ./../../gcc.llvm.master/libgfortran/runtime/environ.c:619: internal compiler error: Aborted
This looks like PR879. Will you try to build with -D__NO_MATH_INLINES and check, whether the assertion still exists?
you are right: a build with -D__NO_MATH_INLINES does not trigger that assertion.
Instead it triggers this one later on:
llvm-convert.cpp:4243: static llvm::Constant* TreeConstantToLLVM::Convert(tree_node*):
Assertion `((__extension__ ({ const tree __t = (exp); char const __c = tree_code_type[(int)
(((enum tree_code) (__t)->common.code))]; if (!((__c) != tcc_type)) tree_class_check_failed
(__t, tcc_type, "../../gcc.llvm.master/gcc/llvm-convert.cpp", 4243, __FUNCTION__); __t; })
->common.constant_flag) || ((enum tree_code) (exp)->common.code) == STRING_CST) &&
"Isn't a constant!"' failed.
libgfortran/intrinsics/selected_int_kind.f90: In function 'selected_int_kind':
libgfortran/intrinsics/selected_int_kind.f90:22: internal compiler error: Aborted
Best wishes,
Duncan.