Mercurial > projects > ldc
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(); |