- Mar 07, 2009
-
-
Duncan Sands authored
and extern_weak_odr. These are the same as the non-odr versions, except that they indicate that the global will only be overridden by an *equivalent* global. In C, a function with weak linkage can be overridden by a function which behaves completely differently. This means that IP passes have to skip weak functions, since any deductions made from the function definition might be wrong, since the definition could be replaced by something completely different at link time. This is not allowed in C++, thanks to the ODR (One-Definition-Rule): if a function is replaced by another at link-time, then the new function must be the same as the original function. If a language knows that a function or other global can only be overridden by an equivalent global, it can give it the weak_odr linkage type, and the optimizers will understand that it is alright to make deductions based on the function body. The code generators on the other hand map weak and weak_odr linkage to the same thing. llvm-svn: 66339
-
Mike Stump authored
testing to to be sure it all works, we'll rip out all the unsupported code. llvm-svn: 66338
-
Mike Stump authored
llvm-svn: 66337
-
Gabor Greif authored
llvm-svn: 66336
-
Sebastian Redl authored
llvm-svn: 66335
-
Sebastian Redl authored
llvm-svn: 66334
-
Gabor Greif authored
llvm-svn: 66333
-
Gabor Greif authored
from SymbolTableListTraits' clients, and intead request a nice declarative interface. Cleans up an IMHO ugly wart. llvm-svn: 66331
-
Chris Lattner authored
signal handlers to prevent reentrance on unrelated things (a sigabort where the handle bus errors) also, clear the signal mask so that the signal doesn't infinitely reissue. This fixes rdar://6654827 - Crash causes clang to loop llvm-svn: 66330
-
Eli Friedman authored
difficult to come up with a testcase because the code generation for this construct is broken. llvm-svn: 66325
-
Nate Begeman authored
1. When the JIT is asked to remove a function, updating it's mapping to 0, we invalidate any function stubs used only by that function. Now, also invalidate the JIT's mapping from the GV the stub pointed to, to the address of the GV. 2. When dlsym stubs for cross-process JIT are enabled, do not abort just because a named function cannot be found in the JIT's process. 3. Fix various assumptions about when it is ok to use the lazy resolver when non-lazy JITing is enabled. llvm-svn: 66324
-
Mike Stump authored
on all the new code by default. There is still plenty of testing to do and issues I'm sure need resolving. Let me know if you find anything. llvm-svn: 66323
-
Mike Stump authored
llvm-svn: 66322
-
Eli Friedman authored
performance that the type of the returned llvm::Value for an expression matches the converted type of the clang::Expr; mismatches will cause all sorts of errors and silent miscompilations. llvm-svn: 66321
-
Mike Stump authored
llvm-svn: 66320
-
Mike Stump authored
llvm-svn: 66319
-
Dan Gohman authored
the same say the "test" instruction does in overflow cases, so eliminating the test is only safe when those bits aren't needed, as is the case for COND_E and COND_NE, or if it can be proven that no overflow will occur. For now, just restrict the optimization to COND_E and COND_NE and don't do any overflow analysis. llvm-svn: 66318
-
Ted Kremenek authored
llvm-svn: 66317
-
Daniel Dunbar authored
- Shaves off a few instructions on x86_64. One notable change: this intentionally stops setting the II->Entry field of IdentifierInfo's retrieved by the ExternalLookup method. This is to maintain the invariant that .getName() has a constant value for any given IdentifierInfo. IRgen currently relies on this; which is quite questionable but will be cleaned up in time. Apologies for the lack of a test case; there really isn't a good way to make one. As IRgen will eventually be fixed to not rely on this, we can survive without one. llvm-svn: 66316
-
Evan Cheng authored
If ARCH is x86_64, pass -m64 to the host compiler. -m32 for i386. This makes sure the JIT work correctly. llvm-svn: 66315
-
Ted Kremenek authored
llvm-svn: 66314
-
Ted Kremenek authored
- Make Selector::getAsIdentifierInfo() private. Using IdentifierInfo* in Selector is an implementation detail that clients shouldn't think about. - Modify diagnostic emission in Sema::ProcessPropertyDecl to not use Selector::getAsIdentifierInfo() (which could crash when IdentifierInfo* is null) and instead use Selector::getAsString(). - Tidy up Selector::getAsString() implementation. llvm-svn: 66313
-
Ted Kremenek authored
PathDiagnosticControlFlowPiece to distinguish (in the class hierarchy) between events and control-flow diagnostic pieces. Clients must now use these directly when constructing PathDiagnosticPieces. llvm-svn: 66310
-
Douglas Gregor authored
llvm-svn: 66309
-
Douglas Gregor authored
struct to an extension warning to match the behavior of GNU C, which addresses the Sema part of PR3671. llvm-svn: 66308
-
Ted Kremenek authored
llvm-svn: 66307
-
Ted Kremenek authored
llvm-svn: 66306
-
Douglas Gregor authored
Clean up some error messages with anonymous structs/unions and member declaration parsing. Fixes PR3680 llvm-svn: 66305
-
Ted Kremenek authored
llvm-svn: 66304
-
Douglas Gregor authored
Use the 'declaration does not declare anything' error when we see an anonymous struct/union declaration outside of a struct or union in C llvm-svn: 66303
-
Fariborz Jahanian authored
crash in ir-gen. llvm-svn: 66302
-
- Mar 06, 2009
-
-
Douglas Gregor authored
prototype of the same function, where the promoted parameter types in the K&R definition are not compatible with the types in the prototype. Fixes PR2821. llvm-svn: 66301
-
Daniel Dunbar authored
- Names are lame, but it seems better to be explicit. llvm-svn: 66295
-
Daniel Dunbar authored
llvm-svn: 66294
-
Daniel Dunbar authored
Usage: from clang/test, 'make -f ../utils/test/Makefile.multi' Pros: About 20% faster than the Makefile based version on my 8 core box (way faster on Windows I imagine, if it works). Cons: Needs some cleanup. Ctrl-C works quite poorly on Darwin; more Python's fault than mine. Future: Support config definitions so we can use this for running LLVM tests instead of dejagnu. Parallel testing goodness? Indeed. llvm-svn: 66293
-
Daniel Dunbar authored
CodeGenModule::CreateRuntimeVariable. - No real functionality change; although we now assert on silly things like: -- int objc_exception_throw; void f0() { @throw(@"A"); } -- instead of accepting it. llvm-svn: 66292
-
Ted Kremenek authored
Start work on subclassing PathDiagnosticPiece to distinguish more between control-flow pieces, events, etc. llvm-svn: 66291
-
Ted Kremenek authored
llvm-svn: 66290
-
Daniel Dunbar authored
table. - No functionality change. llvm-svn: 66289
-
Dale Johannesen authored
an optimization. llvm-svn: 66288
-