From e6c29d6d854cbbafc108cf32f9676157464f39fc Mon Sep 17 00:00:00 2001 From: Meador Inge Date: Tue, 6 Dec 2016 19:22:04 +0000 Subject: [PATCH] [llgo] Remove support for LLVM attributes llgo supports the application of LLVM attributes to global objects and functions. This "feature" is undocumented and untested. As discusses in D27442, it should be removed. Differential Revision: https://reviews.llvm.org/D27474 llvm-svn: 288843 --- llgo/irgen/attribute.go | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/llgo/irgen/attribute.go b/llgo/irgen/attribute.go index 9fd6f6143717..82f264e26e74 100644 --- a/llgo/irgen/attribute.go +++ b/llgo/irgen/attribute.go @@ -74,8 +74,6 @@ func parseAttribute(line string) Attribute { return parseLinkageAttribute(value) case "name": return nameAttribute(strings.TrimSpace(value)) - case "attr": - return parseLLVMAttribute(strings.TrimSpace(value)) case "thread_local": return tlsAttribute{} default: @@ -142,36 +140,6 @@ func (a nameAttribute) Apply(v llvm.Value) { } } -func parseLLVMAttribute(value string) llvmAttribute { - var result llvmAttribute - value = strings.Replace(value, ",", " ", -1) - for _, field := range strings.Fields(value) { - switch strings.ToLower(field) { - case "noreturn": - case "nounwind": - case "noinline": - case "alwaysinline": - kind := llvm.AttributeKindID(strings.ToLower(field)) - result.AttrKinds = append(result.AttrKinds, kind) - } - } - return result -} - -type llvmAttribute struct { - AttrKinds []uint -} - -func (a llvmAttribute) Apply(v llvm.Value) { - ctx := v.GlobalParent().Context() - if !v.IsAFunction().IsNil() { - for _, kind := range a.AttrKinds { - attr := ctx.CreateEnumAttribute(kind, 0) - v.AddFunctionAttr(attr) - } - } -} - type tlsAttribute struct{} func (tlsAttribute) Apply(v llvm.Value) {