| #
b7f4ce3d |
| 21-Nov-2008 |
Chris Lattner <[email protected]> |
temporarily revert Sangiv's patch.
llvm-svn: 59821
|
| #
37129848 |
| 21-Nov-2008 |
Sanjiv Gupta <[email protected]> |
mem[cpy,set,move] intrinsics are now overloaded.
llvm-svn: 59806
|
| #
f99d5449 |
| 19-Nov-2008 |
Sanjiv Gupta <[email protected]> |
Pointer width for PIC16 is 16 bits. Modify getMemCpy, getMemMove and getMemSet accordingly.
llvm-svn: 59613
|
| #
1b9ad472 |
| 19-Nov-2008 |
Daniel Dunbar <[email protected]> |
Discard unused runtime function declarations (for readability).
llvm-svn: 59594
|
| #
8488c829 |
| 18-Nov-2008 |
Chris Lattner <[email protected]> |
This reworks some of the Diagnostic interfaces a bit to change how diagnostics are formed. In particular, a diagnostic with all its strings and ranges is now packaged up and sent to DiagnosticClient
This reworks some of the Diagnostic interfaces a bit to change how diagnostics are formed. In particular, a diagnostic with all its strings and ranges is now packaged up and sent to DiagnosticClients as a DiagnosticInfo instead of as a ton of random stuff. This has the benefit of simplifying the interface, making it more extensible, and allowing us to do more checking for things like access past the end of the various arrays passed in.
In addition to introducing DiagnosticInfo, this also substantially changes how Diagnostic::Report works. Instead of being passed in all of the info required to issue a diagnostic, Report now takes only the required info (a location and ID) and returns a fresh DiagnosticInfo *by value*. The caller is then free to stuff strings and ranges into the DiagnosticInfo with the << operator. When the dtor runs on the DiagnosticInfo object (which should happen at the end of the statement), the diagnostic is actually emitted with all of the accumulated information. This is a somewhat tricky dance, but it means that the accumulated DiagnosticInfo is allowed to keep pointers to other expression temporaries without those pointers getting invalidated.
This is just the minimal change to get this stuff working, but this will allow us to eliminate the zillions of variant "Diag" methods scattered throughout (e.g.) sema. For example, instead of calling:
Diag(BuiltinLoc, diag::err_overload_no_match, typeNames, SourceRange(BuiltinLoc, RParenLoc));
We will soon be able to just do:
Diag(BuiltinLoc, diag::err_overload_no_match) << typeNames << SourceRange(BuiltinLoc, RParenLoc));
This scales better to support arbitrary types being passed in (not just strings) in a type-safe way. Go operator overloading?!
llvm-svn: 59502
show more ...
|
| #
16ba9139 |
| 18-Nov-2008 |
Chris Lattner <[email protected]> |
Change the diagnostics interface to take an array of pointers to strings instead of array of strings. This reduces string copying in some not-very-important cases, but paves the way for future imp
Change the diagnostics interface to take an array of pointers to strings instead of array of strings. This reduces string copying in some not-very-important cases, but paves the way for future improvements.
llvm-svn: 59494
show more ...
|
| #
c2480a55 |
| 15-Nov-2008 |
Anders Carlsson <[email protected]> |
Handle padding in the constant CFString struct. Fixes PR3046.
llvm-svn: 59372
|
| #
fdf389b9 |
| 11-Nov-2008 |
Anton Korobeynikov <[email protected]> |
Codegen support for fastcall & stdcall CC. Patch by Ilya Okonsky!
llvm-svn: 59080
|
|
Revision tags: llvmorg-2.4.0 |
|
| #
b8c18fa5 |
| 04-Nov-2008 |
Chris Lattner <[email protected]> |
LinkageSpecDecl is c++ specific, move it to DeclCXX
llvm-svn: 58704
|
| #
5b06d9f2 |
| 28-Oct-2008 |
Daniel Dunbar <[email protected]> |
Don't run the verifier as part of IRgen, this is now down (per module) in the driver (this means we no longer run the verifier per function, however).
llvm-svn: 58307
|
| #
03a3844c |
| 28-Oct-2008 |
Daniel Dunbar <[email protected]> |
Add attribute always_inline support.
llvm-svn: 58304
|
| #
dfcf599d |
| 17-Oct-2008 |
Daniel Dunbar <[email protected]> |
Add option argument to GetAddrOfConstantString to use for name of (first) global holding the string. - No functionality change.
llvm-svn: 57736
|
| #
b9fd902f |
| 17-Oct-2008 |
Daniel Dunbar <[email protected]> |
Change CGDebugInfo::setLocation to just ignore invalid locations. This simplifies clients.
Also, add assert that RegionStack is empty when the CGDebugInfo is destroyed.
llvm-svn: 57684
|
| #
23fd462f |
| 01-Oct-2008 |
Daniel Dunbar <[email protected]> |
Add simple interface for protecting runtime functions from name collisions. - Provide CodeGenModule::CreateRuntimeFunction which guarantees that the function it creates will have the provided nam
Add simple interface for protecting runtime functions from name collisions. - Provide CodeGenModule::CreateRuntimeFunction which guarantees that the function it creates will have the provided name in the final module. This allows the runtime to have its functions protected from declarations of the same name in the source code.
- One could argue that this is a reason to abuse the llvm::Module namespace for dealing with function redeclarations. However, that approach seems conceptually flawed to me. This one also happens to be somewhat more efficient.
No functionality change.
llvm-svn: 56899
show more ...
|
| #
aec553bf |
| 27-Sep-2008 |
Daniel Dunbar <[email protected]> |
Prefer llvm::Function::addFnAttr(...) to F->addAttribute(~0, ...).
llvm-svn: 56753
|
| #
597e7087 |
| 26-Sep-2008 |
Devang Patel <[email protected]> |
Now Attributes are divided in three groups - return attributes - inreg, zext and sext - parameter attributes - function attributes - nounwind, readonly, readnone, noreturn
Return attributes use 0 as
Now Attributes are divided in three groups - return attributes - inreg, zext and sext - parameter attributes - function attributes - nounwind, readonly, readnone, noreturn
Return attributes use 0 as the index. Function attributes use ~0U as the index.
llvm-svn: 56705
show more ...
|
| #
322300d1 |
| 25-Sep-2008 |
Devang Patel <[email protected]> |
Large mechanical patch.
s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g
This sets the stage - to implement function notes as function a
Large mechanical patch.
s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g
This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes.
llvm-svn: 56623
show more ...
|
| #
7a95ca31 |
| 10-Sep-2008 |
Daniel Dunbar <[email protected]> |
Move FunctionType conversion into CGCall.cpp: - Added CodeGenTypes::GetFunctionType, taking a CGFunctionInfo. - Updated Obj-C runtimes to use this instead of rolling the llvm::FunctionType by ha
Move FunctionType conversion into CGCall.cpp: - Added CodeGenTypes::GetFunctionType, taking a CGFunctionInfo. - Updated Obj-C runtimes to use this instead of rolling the llvm::FunctionType by hand. - Killed CodeGenTypes::{ConvertReturnType, DecodeArgumentTypes}.
Add ABIArgInfo class to encapsulate ABI decision of how to lower types to LLVM. - Will move to target sometime soon.
llvm-svn: 56047
show more ...
|
| #
c68897d2 |
| 10-Sep-2008 |
Daniel Dunbar <[email protected]> |
Tweak CGCall functions again: - Realized these functions will eventually need access to more data, moved to CodeGenModule. Eventually they should probably live together in some other helper cl
Tweak CGCall functions again: - Realized these functions will eventually need access to more data, moved to CodeGenModule. Eventually they should probably live together in some other helper class.
llvm-svn: 56039
show more ...
|
| #
76c8eb75 |
| 10-Sep-2008 |
Daniel Dunbar <[email protected]> |
Tweak CGCall functions: - Move actual param attr list creation to CodeGenFunction::ConstructParamAttrList. - Make ReturnTypeUsesSret static.
llvm-svn: 56038
|
| #
0beedc16 |
| 08-Sep-2008 |
Daniel Dunbar <[email protected]> |
Fix a number of issues w.r.t. emission of global for functions and aliases. - Attributes specific to a definition are only set when the definition is seen. - Alias generation is delayed until th
Fix a number of issues w.r.t. emission of global for functions and aliases. - Attributes specific to a definition are only set when the definition is seen. - Alias generation is delayed until the end of the module; necessary since the alias may reference forward. - Fixes: PR2743, <rdr://6140807&6094512> - Improves: <rdr://6095112> (added XFAIL)
Also, print module on verification failures.
llvm-svn: 55966
show more ...
|
| #
3d7c90b8 |
| 08-Sep-2008 |
Daniel Dunbar <[email protected]> |
Refactor parameter attribute handling: - Add CGCall.h for dealing with ABI issues related to calls. - Add CGFunctionInfo and CGCallInfo for capturing ABI relevant information about functions
Refactor parameter attribute handling: - Add CGCall.h for dealing with ABI issues related to calls. - Add CGFunctionInfo and CGCallInfo for capturing ABI relevant information about functions and calls. - Isolate LLVM parameter attribute handling inside CGCall.cpp
llvm-svn: 55963
show more ...
|
| #
2ffee610 |
| 05-Sep-2008 |
Daniel Dunbar <[email protected]> |
Set sext/zext on function result. - <rdar://problem/6156739>
llvm-svn: 55815
|
| #
449a339f |
| 04-Sep-2008 |
Daniel Dunbar <[email protected]> |
Set function attributes (sext, zext, etc.) on Objective-C methods.
llvm-svn: 55812
|
| #
f2cf6d16 |
| 04-Sep-2008 |
Daniel Dunbar <[email protected]> |
Avoid superfluous errors regarding variable-length arrays (casts).
llvm-svn: 55759
|