[llvm-commits] [llvm] r100910 - in /llvm/trunk/tools: Makefile edis/EDDisassembler.cpp edis/Makefile

Chris Lattner clattner at apple.com
Sun Apr 11 19:15:02 PDT 2010


On Apr 9, 2010, at 5:48 PM, Sean Callanan wrote:

> Author: spyffe
> Date: Fri Apr  9 19:48:10 2010
> New Revision: 100910
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=100910&view=rev
> Log:
> Updated the edis build mechanism to allow for builds
> that do not build some (or all) of the targets that
> edis supports.

Hi Sean,

> +++ llvm/trunk/tools/Makefile Fri Apr  9 19:48:10 2010
> @@ -36,7 +36,7 @@
> ifeq ($(ENABLE_PIC),1)
>   # No support for dynamic libraries on windows targets.
>   ifneq ($(TARGET_OS), $(filter $(TARGET_OS), Cygwin MingW))
> -    PARALLEL_DIRS += edis
> +    DIRS += edis
> 

Why this change?  If it is right, it definitely deserves a comment about why it can't be done in parallel.

> +++ llvm/trunk/tools/edis/EDDisassembler.cpp Fri Apr  9 19:48:10 2010
> @@ -39,8 +39,13 @@
> #include "llvm/Target/TargetRegisterInfo.h"
> #include "llvm/Target/TargetSelect.h"
> 
> +#ifdef EDIS_X86
> #include "../../lib/Target/X86/X86GenEDInfo.inc"
> +#endif
> +
> +#ifdef EDIS_ARM
> #include "../../lib/Target/ARM/ARMGenEDInfo.inc"
> +#endif

As Daniel said, this is a layering violation.  Please add the right APIs to TargetRegistry.h.

> 
> using namespace llvm;
> 
> @@ -54,10 +59,14 @@
> };
> 
> static struct InfoMap infomap[] = {
> +#ifdef EDIS_X86
>   { Triple::x86,          "i386-unknown-unknown",   instInfoX86 },
>   { Triple::x86_64,       "x86_64-unknown-unknown", instInfoX86 },
> +#endif
> +#ifdef EDIS_ARM
>   { Triple::arm,          "arm-unknown-unknown",    instInfoARM },
>   { Triple::thumb,        "thumb-unknown-unknown",  instInfoARM },
> +#endif

This is a hack, all this should be in the targets :).  Adding a new target shouldn't require changing edis code itself and we have good infrastructure for dealing with this sort of thing in TargetRegistry.

> 
> +++ llvm/trunk/tools/edis/Makefile Fri Apr  9 19:48:10 2010
> @@ -45,6 +45,19 @@
>     endif
> endif
> 
> +EDIS_DEFINES = 
> +
> +ifneq (,$(findstring X86,$(TARGETS_TO_BUILD)))
> +	EDIS_DEFINES := $(EDIS_DEFINES) -DEDIS_X86
> +endif
> +
> +ifneq (,$(findstring ARM,$(TARGETS_TO_BUILD)))
> +	EDIS_DEFINES := $(EDIS_DEFINES) -DEDIS_ARM
> +endif
> +
> +CXXFLAGS := $(CXXFLAGS) 
> +#$(EDIS_DEFINES)
> +

Doing this right will also eliminate the need for this stuff.

-Chris





More information about the llvm-commits mailing list