comparison gen/asmstmt.cpp @ 994:18ad5601dff7

Use LLVM OStream wrapper instead of <iostream> in the logger. llvm::OStream provides all std::ostream functionality (by holding a std::ostream* internally), but * doesn't include <iostream>, avoiding per-file overhead. * allows the stream pointer to be null, and the (inlined) operators do nothing when that's the case. (This also allows removal of the ofstream("/dev/null") hack Logger used when disabled, which presumably wasn't very portable)
author Frits van Bommel <fvbommel wxs.nl>
date Thu, 26 Feb 2009 14:51:02 +0100
parents ae710cba0884
children 125c09006ac6
comparison
equal deleted inserted replaced
993:27956b440c0a 994:18ad5601dff7
12 #include "declaration.h" 12 #include "declaration.h"
13 #include "dsymbol.h" 13 #include "dsymbol.h"
14 14
15 #include <cassert> 15 #include <cassert>
16 #include <deque> 16 #include <deque>
17 #include <iostream>
18 #include <cstring> 17 #include <cstring>
19 18
20 //#include "d-lang.h" 19 //#include "d-lang.h"
21 //#include "d-codegen.h" 20 //#include "d-codegen.h"
22 21
258 default: assert(0); break; 257 default: assert(0); break;
259 } 258 }
260 break; 259 break;
261 case Arg_FrameRelative: 260 case Arg_FrameRelative:
262 // FIXME 261 // FIXME
263 std::cout << "asm fixme Arg_FrameRelative" << std::endl; 262 llvm::cout << "asm fixme Arg_FrameRelative" << std::endl;
264 assert(0); 263 assert(0);
265 /* if (arg->expr->op == TOKvar) 264 /* if (arg->expr->op == TOKvar)
266 arg_val = ((VarExp *) arg->expr)->var->toSymbol()->Stree; 265 arg_val = ((VarExp *) arg->expr)->var->toSymbol()->Stree;
267 else 266 else
268 assert(0); 267 assert(0);
276 if (arg->mode != Mode_Input) 275 if (arg->mode != Mode_Input)
277 clobbers_mem = true; 276 clobbers_mem = true;
278 break;*/ 277 break;*/
279 case Arg_LocalSize: 278 case Arg_LocalSize:
280 // FIXME 279 // FIXME
281 std::cout << "asm fixme Arg_LocalSize" << std::endl; 280 llvm::cout << "asm fixme Arg_LocalSize" << std::endl;
282 assert(0); 281 assert(0);
283 /* var_frame_offset = cfun->x_frame_offset; 282 /* var_frame_offset = cfun->x_frame_offset;
284 if (var_frame_offset < 0) 283 if (var_frame_offset < 0)
285 var_frame_offset = - var_frame_offset; 284 var_frame_offset = - var_frame_offset;
286 arg_val = irs->integerConstant( var_frame_offset );*/ 285 arg_val = irs->integerConstant( var_frame_offset );*/
709 708
710 if (Logger::enabled()) { 709 if (Logger::enabled()) {
711 Logger::cout() << "Arguments:" << '\n'; 710 Logger::cout() << "Arguments:" << '\n';
712 Logger::indent(); 711 Logger::indent();
713 for (std::vector<LLValue*>::iterator b = args.begin(), i = b, e = args.end(); i != e; ++i) { 712 for (std::vector<LLValue*>::iterator b = args.begin(), i = b, e = args.end(); i != e; ++i) {
714 std::ostream& cout = Logger::cout(); 713 llvm::OStream cout = Logger::cout();
715 cout << '$' << (i - b) << " ==> " << **i; 714 cout << '$' << (i - b) << " ==> " << **i;
716 if (llvm::isa<LLConstant>(*i)) 715 if (llvm::isa<LLConstant>(*i))
717 cout << '\n'; 716 cout << '\n';
718 } 717 }
719 Logger::undent(); 718 Logger::undent();