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

Sean Callanan scallanan at apple.com
Sun Apr 11 19:23:58 PDT 2010


Chris,

I agree that this is a hack, and I will fix it.  Right now I'm trying to figure out how to make the tester work.  Then I will make a pass through everything and convert the hard-#including into calls into the MCDisassembler returning the appropriate data.

Sean

On Apr 11, 2010, at 7:15 PM, Chris Lattner wrote:

> 
> 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