mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 18:42:46 +02:00
BPF: emit an error message for unsupported signed division operation
Signed-off-by: Yonghong Song <yhs@plumgrid.com> Signed-off-by: Alexei Starovoitov <ast@fb.com> llvm-svn: 263842
This commit is contained in:
parent
6c2dfbbd43
commit
025ed59858
@ -130,6 +130,18 @@ SDNode *BPFDAGToDAGISel::Select(SDNode *Node) {
|
||||
// tablegen selection should be handled here.
|
||||
switch (Opcode) {
|
||||
default: break;
|
||||
case ISD::SDIV: {
|
||||
DebugLoc Empty;
|
||||
const DebugLoc &DL = Node->getDebugLoc();
|
||||
if (DL != Empty)
|
||||
errs() << "Error at line " << DL.getLine() << ": ";
|
||||
else
|
||||
errs() << "Error: ";
|
||||
errs() << "Unsupport signed division for DAG: ";
|
||||
Node->dump(CurDAG);
|
||||
errs() << "Please convert to unsigned div/mod.\n";
|
||||
break;
|
||||
}
|
||||
case ISD::INTRINSIC_W_CHAIN: {
|
||||
unsigned IntNo = cast<ConstantSDNode>(Node->getOperand(1))->getZExtValue();
|
||||
switch (IntNo) {
|
||||
|
9
test/CodeGen/BPF/sdiv_error.ll
Normal file
9
test/CodeGen/BPF/sdiv_error.ll
Normal file
@ -0,0 +1,9 @@
|
||||
; RUN: not llc -march=bpf < %s 2> %t1
|
||||
; RUN: FileCheck %s < %t1
|
||||
; CHECK: Unsupport signed division
|
||||
|
||||
; Function Attrs: norecurse nounwind readnone
|
||||
define i32 @test(i32 %len) #0 {
|
||||
%1 = srem i32 %len, 15
|
||||
ret i32 %1
|
||||
}
|
Loading…
Reference in New Issue
Block a user