- Timestamp:
- Mar 9, 2017, 10:47:08 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 68ac32e, a9b657a
- Parents:
- 6152c81 (diff), 7b2c2c5f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src
- Files:
-
- 4 deleted
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeTools/DeclStats.cc
r6152c81 r149d297 186 186 auto& args = expr->get_args(); 187 187 unsigned fanout = args.size(); 188 188 189 ++exprs_by_fanout_at_depth[ std::make_pair(depth, fanout) ]; 189 190 for ( Expression* arg : args ) { -
src/GenPoly/InstantiateGeneric.cc
r6152c81 r149d297 226 226 227 227 if ( (*baseParam)->isComplete() ) { 228 // substitute parameter for complete (otype or sized dtype) type; makes the struct concrete or dynamic depending on the parameter 229 out.push_back( paramType->clone() ); 228 // substitute parameter for complete (otype or sized dtype) type 229 int pointerLevels = 0; 230 if ( hasPolyBase( paramType->get_type(), &pointerLevels ) && pointerLevels > 0 ) { 231 // Make a void* with equivalent nesting 232 Type* voidPtr = new VoidType( Type::Qualifiers() ); 233 while ( pointerLevels > 0 ) { 234 // Just about data layout, so qualifiers *shouldn't* matter 235 voidPtr = new PointerType( Type::Qualifiers(), voidPtr ); 236 --pointerLevels; 237 } 238 out.push_back( new TypeExpr( voidPtr ) ); 239 } else { 240 // Just clone parameter type 241 out.push_back( paramType->clone() ); 242 } 243 // make the struct concrete or dynamic depending on the parameter 230 244 gt |= isPolyType( paramType->get_type() ) ? genericType::dynamic : genericType::concrete; 231 245 } else switch ( (*baseParam)->get_kind() ) { -
src/driver/Makefile.am
r6152c81 r149d297 28 28 endif 29 29 30 bin_PROGRAMS = cfa30 noinst_PROGRAMS = cfa 31 31 cfa_SOURCES = cfa.cc 32 33 install-exec-hook: 34 @echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) cfa '$(CFA_BINDIR)/$(CFA_NAME)'"; \ 35 $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) cfa $(CFA_BINDIR)/$(CFA_NAME) || exit $$? 36 37 uninstall-hook: 38 @echo " ( cd '$(CFA_BINDIR)' && rm -f $(CFA_NAME) )"; \ 39 cd "$(CFA_BINDIR)" && rm -f $(CFA_NAME) 32 40 33 41 # put into lib for now … … 36 44 cc1_SOURCES = cc1.cc 37 45 38 MAINTAINERCLEANFILES = @CFA_PREFIX@/bin/${bin_PROGRAMS}@CFA_PREFIX@/lib/${cc1lib_PROGRAMS}46 MAINTAINERCLEANFILES = $(CFA_BINDIR)/$(CFA_NAME) @CFA_PREFIX@/lib/${cc1lib_PROGRAMS} -
src/driver/Makefile.in
r6152c81 r149d297 41 41 @BUILD_DEBUG_TRUE@am__append_2 = -DHAVE_LIBCFA_DEBUG 42 42 @BUILD_RELEASE_TRUE@am__append_3 = -DHAVE_LIBCFA_RELEASE 43 bin_PROGRAMS = cfa$(EXEEXT)43 noinst_PROGRAMS = cfa$(EXEEXT) 44 44 cc1lib_PROGRAMS = cc1$(EXEEXT) 45 45 subdir = src/driver … … 53 53 CONFIG_CLEAN_FILES = 54 54 CONFIG_CLEAN_VPATH_FILES = 55 am__installdirs = "$(DESTDIR)$( bindir)" "$(DESTDIR)$(cc1libdir)"56 PROGRAMS = $( bin_PROGRAMS) $(cc1lib_PROGRAMS)55 am__installdirs = "$(DESTDIR)$(cc1libdir)" 56 PROGRAMS = $(cc1lib_PROGRAMS) $(noinst_PROGRAMS) 57 57 am_cc1_OBJECTS = cc1.$(OBJEXT) 58 58 cc1_OBJECTS = $(am_cc1_OBJECTS) … … 215 215 cc1libdir = ${CFA_LIBDIR} 216 216 cc1_SOURCES = cc1.cc 217 MAINTAINERCLEANFILES = @CFA_PREFIX@/bin/${bin_PROGRAMS}@CFA_PREFIX@/lib/${cc1lib_PROGRAMS}217 MAINTAINERCLEANFILES = $(CFA_BINDIR)/$(CFA_NAME) @CFA_PREFIX@/lib/${cc1lib_PROGRAMS} 218 218 all: all-am 219 219 … … 250 250 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 251 251 $(am__aclocal_m4_deps): 252 install-binPROGRAMS: $(bin_PROGRAMS)253 @$(NORMAL_INSTALL)254 test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"255 @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \256 for p in $$list; do echo "$$p $$p"; done | \257 sed 's/$(EXEEXT)$$//' | \258 while read p p1; do if test -f $$p; \259 then echo "$$p"; echo "$$p"; else :; fi; \260 done | \261 sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \262 -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \263 sed 'N;N;N;s,\n, ,g' | \264 $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \265 { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \266 if ($$2 == $$4) files[d] = files[d] " " $$1; \267 else { print "f", $$3 "/" $$4, $$1; } } \268 END { for (d in files) print "f", d, files[d] }' | \269 while read type dir files; do \270 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \271 test -z "$$files" || { \272 echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \273 $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \274 } \275 ; done276 277 uninstall-binPROGRAMS:278 @$(NORMAL_UNINSTALL)279 @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \280 files=`for p in $$list; do echo "$$p"; done | \281 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \282 -e 's/$$/$(EXEEXT)/' `; \283 test -n "$$list" || exit 0; \284 echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \285 cd "$(DESTDIR)$(bindir)" && rm -f $$files286 287 clean-binPROGRAMS:288 -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)289 252 install-cc1libPROGRAMS: $(cc1lib_PROGRAMS) 290 253 @$(NORMAL_INSTALL) … … 324 287 clean-cc1libPROGRAMS: 325 288 -test -z "$(cc1lib_PROGRAMS)" || rm -f $(cc1lib_PROGRAMS) 289 290 clean-noinstPROGRAMS: 291 -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) 326 292 cc1$(EXEEXT): $(cc1_OBJECTS) $(cc1_DEPENDENCIES) $(EXTRA_cc1_DEPENDENCIES) 327 293 @rm -f cc1$(EXEEXT) … … 440 406 all-am: Makefile $(PROGRAMS) 441 407 installdirs: 442 for dir in "$(DESTDIR)$( bindir)" "$(DESTDIR)$(cc1libdir)"; do \408 for dir in "$(DESTDIR)$(cc1libdir)"; do \ 443 409 test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 444 410 done … … 476 442 clean: clean-am 477 443 478 clean-am: clean- binPROGRAMS clean-cc1libPROGRAMS clean-generic\444 clean-am: clean-cc1libPROGRAMS clean-generic clean-noinstPROGRAMS \ 479 445 mostlyclean-am 480 446 … … 503 469 install-dvi-am: 504 470 505 install-exec-am: install-binPROGRAMS 506 471 install-exec-am: 472 @$(NORMAL_INSTALL) 473 $(MAKE) $(AM_MAKEFLAGS) install-exec-hook 507 474 install-html: install-html-am 508 475 … … 542 509 ps-am: 543 510 544 uninstall-am: uninstall-binPROGRAMS uninstall-cc1libPROGRAMS 545 546 .MAKE: install-am install-strip 547 548 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ 549 clean-cc1libPROGRAMS clean-generic ctags distclean \ 550 distclean-compile distclean-generic distclean-tags distdir dvi \ 551 dvi-am html html-am info info-am install install-am \ 552 install-binPROGRAMS install-cc1libPROGRAMS install-data \ 553 install-data-am install-dvi install-dvi-am install-exec \ 554 install-exec-am install-html install-html-am install-info \ 511 uninstall-am: uninstall-cc1libPROGRAMS 512 @$(NORMAL_INSTALL) 513 $(MAKE) $(AM_MAKEFLAGS) uninstall-hook 514 .MAKE: install-am install-exec-am install-strip uninstall-am 515 516 .PHONY: CTAGS GTAGS all all-am check check-am clean \ 517 clean-cc1libPROGRAMS clean-generic clean-noinstPROGRAMS ctags \ 518 distclean distclean-compile distclean-generic distclean-tags \ 519 distdir dvi dvi-am html html-am info info-am install \ 520 install-am install-cc1libPROGRAMS install-data install-data-am \ 521 install-dvi install-dvi-am install-exec install-exec-am \ 522 install-exec-hook install-html install-html-am install-info \ 555 523 install-info-am install-man install-pdf install-pdf-am \ 556 524 install-ps install-ps-am install-strip installcheck \ … … 558 526 maintainer-clean-generic mostlyclean mostlyclean-compile \ 559 527 mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ 560 uninstall-am uninstall-binPROGRAMS uninstall-cc1libPROGRAMS 561 528 uninstall-am uninstall-cc1libPROGRAMS uninstall-hook 529 530 531 install-exec-hook: 532 @echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) cfa '$(CFA_BINDIR)/$(CFA_NAME)'"; \ 533 $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) cfa $(CFA_BINDIR)/$(CFA_NAME) || exit $$? 534 535 uninstall-hook: 536 @echo " ( cd '$(CFA_BINDIR)' && rm -f $(CFA_NAME) )"; \ 537 cd "$(CFA_BINDIR)" && rm -f $(CFA_NAME) 562 538 563 539 # Tell versions [3.59,3.63) of GNU make to not export all variables. -
src/libcfa/Makefile.am
r6152c81 r149d297 81 81 82 82 maintainer-clean-local: 83 -rm -rf ${ includedir}/* ${libdir}/*83 -rm -rf ${CFA_INCDIR} ${CFA_LIBDIR} -
src/libcfa/Makefile.in
r6152c81 r149d297 1161 1161 1162 1162 maintainer-clean-local: 1163 -rm -rf ${ includedir}/* ${libdir}/*1163 -rm -rf ${CFA_INCDIR} ${CFA_LIBDIR} 1164 1164 1165 1165 # Tell versions [3.59,3.63) of GNU make to not export all variables. -
src/libcfa/concurrency/CtxSwitch-i386.S
r6152c81 r149d297 52 52 movl 4(%esp),%eax 53 53 54 // Save floating & SSE control words on the stack. 55 56 sub $8,%esp 57 stmxcsr 0(%esp) // 4 bytes 58 fnstcw 4(%esp) // 2 bytes 59 54 60 // Save volatile registers on the stack. 55 61 … … 69 75 // argument is now at 8 + 12 = 20(%esp) 70 76 71 movl 2 0(%esp),%eax77 movl 28(%esp),%eax 72 78 73 79 // Load new context from the "to" area. … … 81 87 popl %edi 82 88 popl %ebx 89 90 // Load floating & SSE control words from the stack. 91 92 fldcw 4(%esp) 93 ldmxcsr 0(%esp) 94 add $8,%esp 83 95 84 96 // Return to thread. -
src/libcfa/concurrency/CtxSwitch-x86_64.S
r6152c81 r149d297 47 47 CtxSwitch: 48 48 49 // Save volatile registers on the stack.49 // Save floating & SSE control words on the stack. 50 50 51 51 subq $8,%rsp 52 52 stmxcsr 0(%rsp) // 4 bytes 53 53 fnstcw 4(%rsp) // 2 bytes 54 55 // Save volatile registers on the stack. 56 54 57 pushq %r15 55 58 pushq %r14 … … 75 78 popq %r14 76 79 popq %r15 80 81 // Load floating & SSE control words from the stack. 82 77 83 fldcw 4(%rsp) 78 84 ldmxcsr 0(%rsp) 79 addq $8,%rsp85 addq $8,%rsp 80 86 81 87 // Return to thread. -
src/libcfa/concurrency/invoke.c
r6152c81 r149d297 91 91 struct FakeStack { 92 92 void *fixedRegisters[3]; // fixed registers ebx, edi, esi (popped on 1st uSwitch, values unimportant) 93 void *rturn; // where to go on return from uSwitch 93 uint32_t mxcr; // SSE Status and Control bits (control bits are preserved across function calls) 94 uint16_t fcw; // X97 FPU control word (preserved across function calls) 95 void *rturn; // where to go on return from uSwitch 94 96 void *dummyReturn; // fake return compiler would have pushed on call to uInvoke 95 97 void *argument[3]; // for 16-byte ABI, 16-byte alignment starts here … … 108 110 struct FakeStack { 109 111 void *fixedRegisters[5]; // fixed registers rbx, r12, r13, r14, r15 110 uint32_t mxcr; 111 uint16_t fcw; 112 void *rturn; 112 uint32_t mxcr; // SSE Status and Control bits (control bits are preserved across function calls) 113 uint16_t fcw; // X97 FPU control word (preserved across function calls) 114 void *rturn; // where to go on return from uSwitch 113 115 void *dummyReturn; // NULL return address to provide proper alignment 114 116 };
Note:
See TracChangeset
for help on using the changeset viewer.