Commit Graph

62939 Commits

Author SHA1 Message Date
Daniel Dunbar 56e2947a33 Add TargetInfo libraries for all targets.
- Intended to match current TargetMachine implementations.

 - No facilities for linking these in yet.

llvm-svn: 75751
2009-07-15 06:35:19 +00:00
Zhongxing Xu a5da8d25b7 rewrite the logic to make it follow the comments more closely.
llvm-svn: 75750
2009-07-15 06:21:18 +00:00
Evan Cheng 9e0c7f2c5e Move load / store folding alignment require into the table(s).
llvm-svn: 75749
2009-07-15 06:10:07 +00:00
Ted Kremenek 4802955b84 Enhance RegionStore's reasoning about Objective-C ivars. More testing to follow.
llvm-svn: 75748
2009-07-15 06:09:28 +00:00
Ted Kremenek 1492e1781a Update CMake file.
llvm-svn: 75746
2009-07-15 05:39:55 +00:00
Zhongxing Xu b5bf7ee393 Use utility method.
llvm-svn: 75745
2009-07-15 05:09:24 +00:00
Chris Lattner e4a3f6fa3b rename decorateName -> DecorateCygMingName, make it assert if not
cygming, make the two callers only call it if cygming.  Other minor
cleanups.

llvm-svn: 75744
2009-07-15 04:55:56 +00:00
Chris Lattner c35b5bac32 eliminate the Mangler::PreserveAsmNames bit, the sole client of this
can do it perfectly well itself.

llvm-svn: 75743
2009-07-15 04:50:47 +00:00
Chris Lattner fe78558f95 remove printSuffixedName.
llvm-svn: 75742
2009-07-15 04:42:49 +00:00
Chris Lattner a2268c0b19 convert arm/darwin stubs to use the mangler to synthesize all the names instead of
doing it with printSuffixedName.

llvm-svn: 75741
2009-07-15 04:41:01 +00:00
Zhongxing Xu 12b1d137c2 Add getName() method to Entity.
llvm-svn: 75740
2009-07-15 04:39:21 +00:00
Daniel Dunbar 078a71e4a9 Add new TargetRegistry.
Targets implement a single global Target structure which will live in a new
<Target>/TargetInfo library; this will be present in any image which the target
is usable in.
 - Optional target specific classes can then be registered and attached to the
   Target description.

 - Registration for normal Targets will be done via the initialization functions
   instead of using static constructors.

 - This allows clients to use a single interface to obtain target data, without
   requiring the code generator be linked in. It also provides a natural
   extension point for adding new optional target data (assembler parser,
   disassembler, etc.).

 - This also provides a new entry point for obtaining a target for a particular
   triple (without a module).

 - Not yet used, however this should eventually replace the TargetMachineRegistry.

llvm-svn: 75739
2009-07-15 04:24:58 +00:00
Ted Kremenek 57fa7e3cc8 Relax assertion.
llvm-svn: 75738
2009-07-15 04:23:32 +00:00
Chris Lattner 55452c2bea fix an arm codegen bug (the same as PR4482 on ppc) where available_externally
symbols were not getting stubs.  While I'm at it, add a big testcase for
stub generation to make sure I don't break anything.

llvm-svn: 75737
2009-07-15 04:12:33 +00:00
Chris Lattner 53fe736214 convert [Hidden]GVNonLazyPtrs to compute the global and stub names
with the mangler (like x86 and ppc), instead of going through 
printSuffixedName.

llvm-svn: 75736
2009-07-15 03:12:43 +00:00
Chris Lattner 52d0fec140 use makeNameProper to add the globalprefix instead of doing it manually.
llvm-svn: 75734
2009-07-15 03:01:23 +00:00
Chris Lattner 7d1f9542c2 get the PPC stub temporary label from the mangler instead of
using horrible string hacking.  This gives us a different label,
but it's just an assembler temporary, so the name doesn't matter.

llvm-svn: 75733
2009-07-15 02:56:53 +00:00
Chris Lattner d68df2a481 turn some if/then's into ?:
llvm-svn: 75732
2009-07-15 02:36:21 +00:00
Chris Lattner 9a066cacf5 eliminate a bunch of printSuffixedName's by using info computed from
Mangler in FnStubs.

llvm-svn: 75731
2009-07-15 02:33:19 +00:00
Ted Kremenek e6fea68c46 More test cases revealed that the logic in StoreManager::InvalidateRegion() needs more finesse when handling the invalidation of pointers. Pointers that were invalidated as integers could later cause problems for clients using them as pointers. It is easier for us to model a symbolic value as a pointer rather than modeling a non-symbolic value as a pointer.
This patch causes:
- StoreManager::InvalidateRegion() to not used the casted type of a region if
  it would cause a pointer type to be invalidated as a non-pointer type.
- Pushes RegionStore::RetrieveElement() further by handling retrievals from
  symbolic arrays that have been invalidated.  This uses the new SymbolDerived
  construct that was recently introduced.
  
The result is that the failing test in misc-ps-region-store-x86_64.m now passes.
Both misc-ps-region-store-x86_64.m and misc-ps-region-store-i386.m contain a
test case that motivated this change.

llvm-svn: 75730
2009-07-15 02:31:43 +00:00
Chris Lattner e8382ac9b1 convert FnStubs to using a more structured form, eliminating
a couple instances of printSuffixedName (in favor of having
the mangler do stuff).

llvm-svn: 75729
2009-07-15 02:28:57 +00:00
Ted Kremenek c6c2157836 Introduced the notion of a "derived symbol" using the class SymbolDerived.
SymbolDerived allows us to model symbolic values that are related to other
symbols via a region hierarchy. For example, SymbolDerived can be used to model
individual values of a symbolic array.

llvm-svn: 75728
2009-07-15 02:27:32 +00:00
Chris Lattner 1447bd2314 actually $stub labels *are* private, I just missed that
printSuffixedName automatically does this.

llvm-svn: 75727
2009-07-15 01:53:36 +00:00
Chris Lattner dab248ac95 convert this to filecheck style and make it a test of darwin/PPC's
extremely elaborate pic/nopic stubs.

llvm-svn: 75726
2009-07-15 01:43:31 +00:00
Chris Lattner 815337abd6 simplify this test to test the esentials.
llvm-svn: 75725
2009-07-15 01:32:33 +00:00
Ryan Flynn 6817040bed test commit; add self
llvm-svn: 75724
2009-07-15 01:32:31 +00:00
Dan Gohman b0f8e9960d Fix indentation.
llvm-svn: 75723
2009-07-15 01:26:32 +00:00
Dan Gohman c43e47938a Make makeLoopInvariant report whether it made any changes or not,
and use this to simplify more code.

llvm-svn: 75722
2009-07-15 01:25:43 +00:00
Chris Lattner 7f318128d0 $stub references should not be private ("L") labels.
llvm-svn: 75721
2009-07-15 01:23:13 +00:00
Chris Lattner 8da3ce3bfd simplify "EmitExternalGlobal": it is only used to output a
reference to the personality function for a module, and
those are all added to the GVStubs array by looping
over MMI->getPersonalities()

llvm-svn: 75720
2009-07-15 01:16:38 +00:00
Chris Lattner 9ffa4e2193 Convert GVStubs and HiddenGVStubs to work more like the X86 backend, this
eliminates a bunch of uses of "printSuffixedName" and "getGlobalLinkName".

llvm-svn: 75719
2009-07-15 01:14:44 +00:00
Chris Lattner 0b1ca0a303 minor cleanups: only switch sections once before all function stubs, instead of
before each one.

llvm-svn: 75718
2009-07-15 00:55:58 +00:00
Dan Gohman 00d4fb45e5 llvm-c/Core.h is no longer needed in lto.h, and it brings in
several unwanted dependencies.

llvm-svn: 75717
2009-07-15 00:47:00 +00:00
Chris Lattner c1bc3701b6 Fix a fixme, patch by Ryan Flynn!
llvm-svn: 75716
2009-07-15 00:36:04 +00:00
Evan Cheng d1c4705577 control reaches end of non-void function.
llvm-svn: 75714
2009-07-14 23:55:32 +00:00
Ted Kremenek e5d2f79876 Handle cast of 'ObjCObjectRegion' in StoreManager::InvalidateRegion.
llvm-svn: 75713
2009-07-14 23:52:07 +00:00
Fariborz Jahanian dfbd05d8aa Added a FIXME and prevent crash when listing
a dependent type in the ctor initializer-list.

llvm-svn: 75712
2009-07-14 23:41:35 +00:00
Kevin Enderby d1ea5393c9 Added llvm-mc support for parsing the .include directive.
llvm-svn: 75711
2009-07-14 23:21:55 +00:00
Ted Kremenek 9a797db199 Split out 'test2' into an i386 and x86_64 file, illustrating how the
test behavior differs between architectures.  When this is no longer
the case, these tests will be merged.

llvm-svn: 75708
2009-07-14 23:17:22 +00:00
Chris Lattner ca99c348ed minor syntax cleanup
llvm-svn: 75707
2009-07-14 23:14:10 +00:00
Owen Anderson 170229f68d Update for LLVM API change, and contextify a bunch of related stuff.
llvm-svn: 75705
2009-07-14 23:10:40 +00:00
Owen Anderson b6b2530000 Move EVER MORE stuff over to LLVMContext.
llvm-svn: 75703
2009-07-14 23:09:55 +00:00
Ted Kremenek eea582f04f This test currently only passes for 32-bit archs.
llvm-svn: 75698
2009-07-14 22:58:18 +00:00
Daniel Dunbar 2c2c4af05e Fix path name.
llvm-svn: 75697
2009-07-14 22:58:03 +00:00
Fariborz Jahanian 5da7ecb245 Fixed a bug in building ctor-initializer AST.
llvm-svn: 75692
2009-07-14 22:40:50 +00:00
Eli Friedman bb0d9a5129 Remove -ftraditional option, which gcc doesn't actually support. Make
using -traditional and -traditional-cpp with clang an error because 
it's unsupported in clang and causes a significant change in the 
semantics of the language.

llvm-svn: 75690
2009-07-14 21:58:17 +00:00
Bruno Cardoso Lopes ef130cfa95 Use the right relocation type for X86::MOV64ri64i32
llvm-svn: 75687
2009-07-14 21:46:40 +00:00
Bob Wilson a9111b9f97 Fix bad indentation and 80-col violation.
llvm-svn: 75686
2009-07-14 21:45:58 +00:00
Kevin Enderby cbe475dfe8 Added llvm-mc support for parsing the .lsym directive.
llvm-svn: 75685
2009-07-14 21:35:03 +00:00
Devang Patel 9be7b20401 Revert 75648 for now. It is causing test failures.
llvm-svn: 75684
2009-07-14 21:31:22 +00:00