summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement a warning when converting the literal 'false' to aDouglas Gregor2010-06-081-1/+7
| | | | | | pointer. Original patch by Troy D. Straszheim; fixes PR7283. llvm-svn: 105621
* When checking whether we can place a base subobject at an offset, we don't ↵Anders Carlsson2010-06-081-1/+22
| | | | | | need to go past the highest offset that's known to contain an empty base subobject. llvm-svn: 105611
* Minor cleanups to the empty subobject map.Anders Carlsson2010-06-081-8/+23
| | | | llvm-svn: 105608
* Correctly mangle static variables of anonymous struct/union type.Anders Carlsson2010-06-081-0/+44
| | | | llvm-svn: 105606
* Add a checker check if a global variable holds a local variable's address afterZhongxing Xu2010-06-084-0/+97
| | | | | | the function call is left where the local variable is declared. llvm-svn: 105602
* Fix NEON intrinsic argument passing, support vext. Most now successfully ↵Nate Begeman2010-06-082-57/+87
| | | | | | make it through codegen to the .s file llvm-svn: 105599
* Implement -fcaret-diagnostics to undo -fno-caret-diagnostics.Jeffrey Yasskin2010-06-081-1/+5
| | | | llvm-svn: 105597
* Fix what looks like a merge problem that broke __clear_cache.Rafael Espindola2010-06-081-1/+1
| | | | llvm-svn: 105595
* Since the enum values for each arch's builtins overlap, it is not ↵Nate Begeman2010-06-082-4/+36
| | | | | | appropriate to check them when compiling or other archs. Fixes a problem where compiling for NEON would use x86 sema rules. llvm-svn: 105593
* Fix passing and returning of objects with non trivial copy constructors onRafael Espindola2010-06-081-0/+10
| | | | | | | | ARM. Fixes PR7310. llvm-svn: 105592
* Implement ARM NEON up through vcvt, alphabetically.Nate Begeman2010-06-082-30/+89
| | | | llvm-svn: 105590
* Extend __builtin_shufflevector to expose the full power of the llvm ↵Nate Begeman2010-06-082-31/+133
| | | | | | shufflevector instruction. This means it can now be used for vector truncation and concatenation. This will be used for the ARM NEON implementation. llvm-svn: 105589
* Driver: Support invoking Clang on .ll or .bc inputs.Daniel Dunbar2010-06-073-13/+39
| | | | | | | | | | | | | | | - We actually pretend that we have two separate types for LLVM assembly/bitcode because we need to use the standard suffixes with LTO ('clang -O4 -c t.c' should generate 't.o'). It is now possible to do something like: $ clang -emit-llvm -S t.c -o t.ll ... assorted other compile flags ... $ clang -c t.ll -o t.o ... assorted other compile flags ... and expect that the output will be almost* identical to: $ clang -c t.c -o t.o ... assorted other compile flags ... because all the target settings (default CPU, target features, etc.) will all be initialized properly by the driver/frontend. *: This isn't perfect yet, because in practice we will end up running the optimization passes twice. It's possible to get something equivalent out with a well placed -mllvm -disable-llvm-optzns, but I'm still thinking about the cleanest way to solve this problem more generally. llvm-svn: 105584
* Frontend: Add CodeGenAction support for handling LLVM IR.Daniel Dunbar2010-06-071-14/+74
| | | | | | | | | | | | | | | | | - This magically enables using 'clang -cc1' as a replacement for most of 'llvm-as', 'llvm-dis', 'llc' and 'opt' functionality. For example, 'llvm-as' is: $ clang -cc1 -emit-llvm-bc FOO.ll -o FOO.bc and 'llvm-dis' is: $ clang -cc1 -emit-llvm FOO.bc -o - and 'opt' is, e.g.: $ clang -cc1 -emit-llvm -O3 -o FOO.opt.ll FOO.ll and 'llc' is, e.g.: $ clang -cc1 -S -o - FOO.ll The nice thing about using the backend tools this way is that they are guaranteed to exactly match how the compiler generates code (for example, setting the same backend options). llvm-svn: 105583
* Frontend: Add FrontendAction support for handling LLVM IR inputs.Daniel Dunbar2010-06-074-2/+25
| | | | | | - These inputs follow an abbreviated execution path, but are still worth handling by FrontendAction so they reuse all the other clang -cc1 features. llvm-svn: 105582
* FrontendAction: Track active file kind.Daniel Dunbar2010-06-072-6/+9
| | | | llvm-svn: 105581
* Frontend: Rename hasASTSupport to hasASTFileSupport, which is more accurate.Daniel Dunbar2010-06-072-3/+4
| | | | llvm-svn: 105580
* Frontend: Move some initialization from CompilerInstance to FrontendAction, ↵Daniel Dunbar2010-06-073-25/+12
| | | | | | to parallel what is done for AST inputs. llvm-svn: 105579
* Frontend: Change FrontendAction::BeginSourceFile to take the input kind ↵Daniel Dunbar2010-06-073-3/+4
| | | | | | instead of an IsAST bool. llvm-svn: 105578
* Frontend: Lift InputKind enumeration to top level.Daniel Dunbar2010-06-074-64/+61
| | | | llvm-svn: 105577
* Frontend: Drop unnecessary TargetData argument to EmitBackendOutput, we alwaysDaniel Dunbar2010-06-072-21/+11
| | | | | | create modules which have target data strings. llvm-svn: 105576
* Frontend: Factor clang::EmitBackendOutput out of CodeGenAction.Daniel Dunbar2010-06-073-327/+359
| | | | llvm-svn: 105575
* Frontend: Add CodeGenOptions::SimplifyLibCalls, and eliminate LangOptions ↵Daniel Dunbar2010-06-072-5/+5
| | | | | | argument to BackendConsumer. llvm-svn: 105574
* When using property-dot assignment syntax to call a setter method,Fariborz Jahanian2010-06-072-4/+17
| | | | | | | type of rhs need be compared to setter's argument and not the getter type. Fixes radar 8062778 llvm-svn: 105560
* Fixed a block regression caused by trying to useFariborz Jahanian2010-06-072-7/+0
| | | | | | | | an existing ir for load of a bock variable. This cannot be done across basic blocks. Fixes radar 8064140. llvm-svn: 105549
* Catch free()s on non-regions and regions known to be not from malloc(), by ↵Jordy Rose2010-06-071-5/+180
| | | | | | checking the symbol type and memory space. llvm-svn: 105547
* Implement __clear_cache on ARM.Rafael Espindola2010-06-071-4/+9
| | | | llvm-svn: 105537
* Use MaybeCreateCXXExprWithTemporaries for potential destruction ofFariborz Jahanian2010-06-073-3/+19
| | | | | | | created temporary. Use own initialized entity for copied in block variables. llvm-svn: 105533
* weekend checkpoint of arm neon builtins codegen. Nate Begeman2010-06-071-0/+89
| | | | | | TODO: add remainder of builtins to CGBuiltin, add code to SemaChecking to validate constants. llvm-svn: 105532
* PR7245: Make binding a reference to a temporary without a usable copyJeffrey Yasskin2010-06-073-8/+16
| | | | | | constructor into an extension warning into the error that C++98 requires. llvm-svn: 105529
* Simplify the methods for creating a pointer, reference, member-pointer,John McCall2010-06-053-129/+98
| | | | | | | or block-pointer type by removing the qualifiers parameter. Introduce a method to perform semantic checking when adding qualifiers to a type. llvm-svn: 105526
* Added AccessSpecDecl node.Abramo Bagnara2010-06-0510-17/+62
| | | | llvm-svn: 105525
* Add an extension to avoid an error when a global template has the same name asJeffrey Yasskin2010-06-051-2/+3
| | | | | | | | | | | | | | | | | | | | a member template, and you try to call the member template with an explicit template argument. See PR7247 For example, this downgrades the error to a warning in: template<typename T> struct set{}; struct Value { template<typename T> void set(T value) { } }; void foo() { Value v; v.set<double>(3.2); // Warning here. } llvm-svn: 105518
* Preserve type info for local variables in optimized builds. Devang Patel2010-06-051-1/+1
| | | | | | llvm-gcc enabled this couple of weeks ago. llvm-svn: 105516
* Alter the interface of GetTypeForDeclarator to return a TypeSourceInfo*.John McCall2010-06-0410-57/+47
| | | | | | This is never null, but the associated type might be. llvm-svn: 105503
* Correctly align large arrays in x86-64. This fixes PR5599.Rafael Espindola2010-06-043-0/+13
| | | | llvm-svn: 105500
* When deciding whether reinterpret_cast casts away constness we need to look ↵Anders Carlsson2010-06-041-2/+7
| | | | | | at array qualifiers. Fixes rdar://problem/8018292. llvm-svn: 105494
* Initial support for ARM NEON builtins, codegen up nextNate Begeman2010-06-041-5/+4
| | | | llvm-svn: 105489
* Build AST for copy-construction of copied-inFariborz Jahanian2010-06-042-24/+32
| | | | | | class object in blocks and carry it to IRGen. llvm-svn: 105487
* Remember type source information for Objective C property declarations.John McCall2010-06-046-15/+17
| | | | llvm-svn: 105484
* Added a field to BlockDeclRefExpr for future use.Fariborz Jahanian2010-06-043-1/+5
| | | | | | No functionality change yet. llvm-svn: 105479
* Preserve more information from a block's original function declarator, if oneJohn McCall2010-06-044-35/+68
| | | | | | | was given. Remove some unnecessary accounting from BlockScopeInfo. Handle typedef'ed function types until such time as we decide not. llvm-svn: 105478
* Driver: Change -dwarf-debug-flags option to pass the original command lineDaniel Dunbar2010-06-041-2/+7
| | | | | | arguments after translation, instead of the -cc1 level arguments. llvm-svn: 105476
* Driver/Darwin: Model dsymutil properly, as a separate action/tool kind which isDaniel Dunbar2010-06-042-45/+30
| | | | | | | added as the last output step, instead of just hacking it into the link step. - Among other things, this fixes dSYM generation when using multiple -arch options. llvm-svn: 105475
* Driver: Add an explicit dsymutil action.Daniel Dunbar2010-06-044-0/+46
| | | | llvm-svn: 105474
* For C++ copied in objects, use copy constructors inFariborz Jahanian2010-06-042-7/+31
| | | | | | | | setting up block's descriptor. This is on going work to support c++ specific issues in setting up blocks various APIs. llvm-svn: 105469
* Add ARM paths for debian. Not enough to bootstrap on a beagle board, butRafael Espindola2010-06-041-0/+2
| | | | | | moves us further. llvm-svn: 105468
* Restructure how we interpret block-literal declarators. Correctly handleJohn McCall2010-06-045-79/+82
| | | | | | | the case where we pick up block arguments from a typedef. Save the block signature as it was written, and preserve same through PCH. llvm-svn: 105466
* Don't insert in lexical context implicit definitions of static member instances.Abramo Bagnara2010-06-041-1/+2
| | | | llvm-svn: 105465
* When checking for equality of template parameter lists, a templateDouglas Gregor2010-06-041-3/+26
| | | | | | type parameter pack is distinct from a template type parameter. llvm-svn: 105464
OpenPOWER on IntegriCloud