Browse code

add regalloc local for debug purposes.

Török Edvin authored on 2009/12/18 22:04:23
Showing 3 changed files
... ...
@@ -515,6 +515,7 @@ libllvmcodegen_la_SOURCES=\
515 515
 	llvm/lib/CodeGen/ProcessImplicitDefs.cpp\
516 516
 	llvm/lib/CodeGen/PrologEpilogInserter.cpp\
517 517
 	llvm/lib/CodeGen/RegAllocLinearScan.cpp\
518
+	llvm/lib/CodeGen/RegAllocLocal.cpp\
518 519
 	llvm/lib/CodeGen/RegisterCoalescer.cpp\
519 520
 	llvm/lib/CodeGen/RegisterScavenging.cpp\
520 521
 	llvm/lib/CodeGen/ScheduleDAG.cpp\
... ...
@@ -241,7 +241,7 @@ am_libllvmcodegen_la_OBJECTS = AliasSetTracker.lo ConstantFolding.lo \
241 241
 	MachineSink.lo MachineVerifier.lo MaxStackAlignment.lo \
242 242
 	PHIElimination.lo Passes.lo PostRASchedulerList.lo \
243 243
 	PreAllocSplitting.lo ProcessImplicitDefs.lo \
244
-	PrologEpilogInserter.lo RegAllocLinearScan.lo \
244
+	PrologEpilogInserter.lo RegAllocLinearScan.lo RegAllocLocal.lo \
245 245
 	RegisterCoalescer.lo RegisterScavenging.lo ScheduleDAG.lo \
246 246
 	ScheduleDAGEmit.lo ScheduleDAGInstrs.lo ScheduleDAGPrinter.lo \
247 247
 	CallingConvLower.lo DAGCombiner.lo FastISel.lo \
... ...
@@ -1155,6 +1155,7 @@ libllvmcodegen_la_SOURCES = \
1155 1155
 	llvm/lib/CodeGen/ProcessImplicitDefs.cpp\
1156 1156
 	llvm/lib/CodeGen/PrologEpilogInserter.cpp\
1157 1157
 	llvm/lib/CodeGen/RegAllocLinearScan.cpp\
1158
+	llvm/lib/CodeGen/RegAllocLocal.cpp\
1158 1159
 	llvm/lib/CodeGen/RegisterCoalescer.cpp\
1159 1160
 	llvm/lib/CodeGen/RegisterScavenging.cpp\
1160 1161
 	llvm/lib/CodeGen/ScheduleDAG.cpp\
... ...
@@ -2968,6 +2969,14 @@ RegAllocLinearScan.lo: llvm/lib/CodeGen/RegAllocLinearScan.cpp
2968 2968
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2969 2969
 @am__fastdepCXX_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RegAllocLinearScan.lo `test -f 'llvm/lib/CodeGen/RegAllocLinearScan.cpp' || echo '$(srcdir)/'`llvm/lib/CodeGen/RegAllocLinearScan.cpp
2970 2970
 
2971
+RegAllocLocal.lo: llvm/lib/CodeGen/RegAllocLocal.cpp
2972
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RegAllocLocal.lo -MD -MP -MF $(DEPDIR)/RegAllocLocal.Tpo -c -o RegAllocLocal.lo `test -f 'llvm/lib/CodeGen/RegAllocLocal.cpp' || echo '$(srcdir)/'`llvm/lib/CodeGen/RegAllocLocal.cpp
2973
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/RegAllocLocal.Tpo $(DEPDIR)/RegAllocLocal.Plo
2974
+@am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
2975
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='llvm/lib/CodeGen/RegAllocLocal.cpp' object='RegAllocLocal.lo' libtool=yes @AMDEPBACKSLASH@
2976
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2977
+@am__fastdepCXX_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RegAllocLocal.lo `test -f 'llvm/lib/CodeGen/RegAllocLocal.cpp' || echo '$(srcdir)/'`llvm/lib/CodeGen/RegAllocLocal.cpp
2978
+
2971 2979
 RegisterCoalescer.lo: llvm/lib/CodeGen/RegisterCoalescer.cpp
2972 2980
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RegisterCoalescer.lo -MD -MP -MF $(DEPDIR)/RegisterCoalescer.Tpo -c -o RegisterCoalescer.lo `test -f 'llvm/lib/CodeGen/RegisterCoalescer.cpp' || echo '$(srcdir)/'`llvm/lib/CodeGen/RegisterCoalescer.cpp
2973 2981
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/RegisterCoalescer.Tpo $(DEPDIR)/RegisterCoalescer.Plo
... ...
@@ -3544,14 +3553,6 @@ OcamlGC.lo: llvm/lib/CodeGen/OcamlGC.cpp
3544 3544
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3545 3545
 @am__fastdepCXX_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OcamlGC.lo `test -f 'llvm/lib/CodeGen/OcamlGC.cpp' || echo '$(srcdir)/'`llvm/lib/CodeGen/OcamlGC.cpp
3546 3546
 
3547
-RegAllocLocal.lo: llvm/lib/CodeGen/RegAllocLocal.cpp
3548
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RegAllocLocal.lo -MD -MP -MF $(DEPDIR)/RegAllocLocal.Tpo -c -o RegAllocLocal.lo `test -f 'llvm/lib/CodeGen/RegAllocLocal.cpp' || echo '$(srcdir)/'`llvm/lib/CodeGen/RegAllocLocal.cpp
3549
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/RegAllocLocal.Tpo $(DEPDIR)/RegAllocLocal.Plo
3550
-@am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
3551
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='llvm/lib/CodeGen/RegAllocLocal.cpp' object='RegAllocLocal.lo' libtool=yes @AMDEPBACKSLASH@
3552
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3553
-@am__fastdepCXX_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RegAllocLocal.lo `test -f 'llvm/lib/CodeGen/RegAllocLocal.cpp' || echo '$(srcdir)/'`llvm/lib/CodeGen/RegAllocLocal.cpp
3554
-
3555 3547
 RegAllocPBQP.lo: llvm/lib/CodeGen/RegAllocPBQP.cpp
3556 3548
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RegAllocPBQP.lo -MD -MP -MF $(DEPDIR)/RegAllocPBQP.Tpo -c -o RegAllocPBQP.lo `test -f 'llvm/lib/CodeGen/RegAllocPBQP.cpp' || echo '$(srcdir)/'`llvm/lib/CodeGen/RegAllocPBQP.cpp
3557 3549
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/RegAllocPBQP.Tpo $(DEPDIR)/RegAllocPBQP.Plo
... ...
@@ -512,7 +512,7 @@ public:
512 512
 	}
513 513
 	FunctionType *FTy = FunctionType::get(Type::getVoidTy(Context),
514 514
 						    false);
515
-	Function *FHandler = Function::Create(FTy, Function::InternalLinkage,
515
+	Function *FHandler = Function::Create(FTy, Function::ExternalLinkage,
516 516
 					      "clamjit.fail", M);
517 517
 	FHandler->setDoesNotReturn();
518 518
 	FHandler->setDoesNotThrow();
... ...
@@ -596,7 +596,6 @@ public:
596 596
 				    C, "glob"+Twine(i));
597 597
 	    globals.push_back(GV);
598 598
 	}
599
-
600 599
 	Function **Functions = new Function*[bc->num_func];
601 600
 	for (unsigned j=0;j<bc->num_func;j++) {
602 601
 	    PrettyStackTraceString CrashInfo("Generate LLVM IR functions");
... ...
@@ -1068,8 +1067,10 @@ public:
1068 1068
 		ReturnInst::Create(Context, CI, BB);
1069 1069
 
1070 1070
 		if (verifyFunction(*F, PrintMessageAction) == 0) {
1071
+			DEBUG(errs() << "Generating code\n");
1071 1072
 			// Codegen current function as executable machine code.
1072 1073
 			void *code = EE->getPointerToFunction(F);
1074
+			DEBUG(errs() << "Code generation finished\n");
1073 1075
 
1074 1076
 			compiledFunctions[func] = code;
1075 1077
 		}
... ...
@@ -1199,7 +1200,7 @@ int cli_bytecode_prepare_jit(struct cli_all_bc *bcs)
1199 1199
 	FunctionType *FTy = FunctionType::get(Type::getVoidTy(M->getContext()),
1200 1200
 						    false);
1201 1201
 	GlobalVariable *Guard = new GlobalVariable(*M, PointerType::getUnqual(Type::getInt8Ty(M->getContext())),
1202
-						    true, GlobalValue::InternalLinkage, 0, "__stack_chk_guard"); 
1202
+						    true, GlobalValue::ExternalLinkage, 0, "__stack_chk_guard"); 
1203 1203
 	unsigned plus = 0;
1204 1204
 	if (2*sizeof(void*) <= 16 && cli_rndnum(2)==2) {
1205 1205
 	    plus = sizeof(void*);