fpc/compiler/llvm
Jonas Maebe cf2e46c2c1 * reworked external symbol handling on llvm to deal with the fact that
a single external symbol may be used with multiple declarations that
    have different types:
   o always declare an alias with the Pascal-mangled name that aliases the
     external symbol, with the type of that Pascal declaration
   o if the external symbol is not actually external but in the same unit,
     we will determine the type of that symbol via its declaration and
     insert type conversions in the alias declarations in case they use a
     different type
   o if it is external (so there is no declaration from which we can determine
     its real type) and there are nevertheless multiple aliases for it with
     different types, we just take the type of the first alias and insert
     type conversions for the other aliases. LLVM will take care of the
     conflicting types in multiple modules when performing WPO if necessary

git-svn-id: trunk@31054 -
2015-06-13 22:48:20 +00:00
..
aasmllvm.pas * once we've defined a symbol as an alias, it's declared to the same extent 2015-05-03 16:50:51 +00:00
agllvm.pas * support llvm aliases for defs other than procdef 2015-06-13 22:48:14 +00:00
cgllvm.pas
hlcgllvm.pas * reworked external symbol handling on llvm to deal with the fact that 2015-06-13 22:48:20 +00:00
itllvm.pas * fixed a number of (mostly false) warnings regarding uninitialised 2015-03-15 21:10:50 +00:00
llvmbase.pas * fixed a number of (mostly false) warnings regarding uninitialised 2015-03-15 21:10:50 +00:00
llvmdef.pas * generate the correct llvm type description for classrefdef 2015-05-31 16:51:04 +00:00
llvminfo.pas
llvmnode.pas * reworked external symbol handling on llvm to deal with the fact that 2015-06-13 22:48:20 +00:00
llvmpara.pas + implemented getintparaloc() for llvm 2015-04-04 14:29:19 +00:00
llvmsym.pas - removed the globalsymbolmangleprefix/suffix constants that were added for 2014-07-05 15:44:16 +00:00
llvmtarg.pas
llvmtype.pas * reworked external symbol handling on llvm to deal with the fact that 2015-06-13 22:48:20 +00:00
nllvmadd.pas * convert all arguments to integers in case of comparisons of pointers with 2015-04-07 19:35:08 +00:00
nllvmcal.pas * added missing {$i fpcdefs.inc} 2014-08-10 19:40:34 +00:00
nllvmcnv.pas * don't insert a typeconversion from pasbool to int in case the left 2015-05-03 16:51:10 +00:00
nllvmcon.pas * migrated the handling of ansi/unicodestring constants to the high level 2014-08-06 18:04:40 +00:00
nllvminl.pas + llvm second_length() implementation (can't use generic one because of its 2014-08-12 18:59:19 +00:00
nllvmld.pas * added missing {$i fpcdefs.inc} 2014-08-10 19:40:34 +00:00
nllvmmat.pas * moved tjvmnotnode implementation to generic ncghlmat unit, and also use it 2014-08-10 19:39:55 +00:00
nllvmmem.pas * fixed subscripting classes in llvm 2015-05-31 16:51:07 +00:00
nllvmtcon.pas * cache and reuse procvardefs internally created to get the address of a 2015-05-14 15:36:20 +00:00
nllvmutil.pas * add type declarations for structure types in the llvm code so that we can 2015-04-19 21:37:46 +00:00
rgllvm.pas * override instr_get_oper_spilling_info and substitute_spilled_registers for 2015-04-04 14:29:12 +00:00
symllvm.pas * reworked external symbol handling on llvm to deal with the fact that 2015-06-13 22:48:20 +00:00
tgllvm.pas * fixed a number of (mostly false) warnings regarding uninitialised 2015-03-15 21:10:50 +00:00