Skip to content

Commit e67d239

Browse files
committed
[llgo]: fix compilation under current llvm
Patch rL322965 changed how intrinsics for memset and memzero were defined. This causes a regression in LLGO making it no longer buidable. In addition to that one pass was renamed, so this also addresses the pass naming disparity. I removed all split stack related bits from this patch as as asked. Differential Revision: https://reviews.llvm.org/D56638 llvm-svn: 351722
1 parent 5c23410 commit e67d239

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

llgo/cmd/gllgo/gllgo.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ func (san *sanitizerOptions) addPasses(mpm, fpm llvm.PassManager) {
117117
case san.thread:
118118
mpm.AddThreadSanitizerPass()
119119
case san.memory:
120-
mpm.AddMemorySanitizerPass()
120+
mpm.AddMemorySanitizerLegacyPassPass()
121121
case san.dataflow:
122122
blacklist := san.blacklist
123123
if blacklist == "" {

llgo/irgen/runtime.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,6 @@ func newRuntimeInterface(module llvm.Module, tm *llvmTypeMap) (*runtimeInterface
517517
llvm.PointerType(llvm.Int8Type(), 0),
518518
llvm.Int8Type(),
519519
tm.target.IntPtrType(),
520-
llvm.Int32Type(),
521520
llvm.Int1Type(),
522521
},
523522
false,
@@ -530,8 +529,7 @@ func newRuntimeInterface(module llvm.Module, tm *llvmTypeMap) (*runtimeInterface
530529
[]llvm.Type{
531530
llvm.PointerType(llvm.Int8Type(), 0),
532531
llvm.PointerType(llvm.Int8Type(), 0),
533-
tm.target.IntPtrType(),
534-
llvm.Int32Type(),
532+
llvm.Int64Type(),
535533
llvm.Int1Type(),
536534
},
537535
false,
@@ -589,19 +587,17 @@ func (fr *frame) memsetZero(ptr llvm.Value, size llvm.Value) {
589587
ptr = fr.builder.CreateBitCast(ptr, llvm.PointerType(llvm.Int8Type(), 0), "")
590588
fill := llvm.ConstNull(llvm.Int8Type())
591589
size = fr.createZExtOrTrunc(size, fr.target.IntPtrType(), "")
592-
align := llvm.ConstInt(llvm.Int32Type(), 1, false)
593590
isvolatile := llvm.ConstNull(llvm.Int1Type())
594-
fr.builder.CreateCall(memset, []llvm.Value{ptr, fill, size, align, isvolatile}, "")
591+
fr.builder.CreateCall(memset, []llvm.Value{ptr, fill, size, isvolatile}, "")
595592
}
596593

597594
func (fr *frame) memcpy(dest llvm.Value, src llvm.Value, size llvm.Value) {
598595
memcpy := fr.runtime.memcpy
599596
dest = fr.builder.CreateBitCast(dest, llvm.PointerType(llvm.Int8Type(), 0), "")
600597
src = fr.builder.CreateBitCast(src, llvm.PointerType(llvm.Int8Type(), 0), "")
601598
size = fr.createZExtOrTrunc(size, fr.target.IntPtrType(), "")
602-
align := llvm.ConstInt(llvm.Int32Type(), 1, false)
603599
isvolatile := llvm.ConstNull(llvm.Int1Type())
604-
fr.builder.CreateCall(memcpy, []llvm.Value{dest, src, size, align, isvolatile}, "")
600+
fr.builder.CreateCall(memcpy, []llvm.Value{dest, src, size, isvolatile}, "")
605601
}
606602

607603
func (fr *frame) returnAddress(level uint64) llvm.Value {

0 commit comments

Comments
 (0)