summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore
Commit message (Collapse)AuthorAgeFilesLines
* Add IRBuilder code for adding !tbaa.struct metadata tags to llvm.memcpy calls.Dan Gohman2012-09-261-1/+5
| | | | llvm-svn: 164728
* Query the parameter attributes directly instead of using the Attribute symbols.Bill Wendling2012-09-261-5/+5
| | | | llvm-svn: 164727
* Initial commit for the AttributesImpl class.Bill Wendling2012-09-264-1/+84
| | | | | | | | This opaque class will contain all of the attributes. All attribute queries will go through this object. This object will also be uniqued in the LLVMContext. Currently not used, so no implementation change. llvm-svn: 164722
* Replace calls to getSizeInBits with getExtendedSizeInBits since its already ↵Craig Topper2012-09-261-7/+7
| | | | | | known its an extended type. llvm-svn: 164667
* Move Attribute::typeIncompatible inside of the Attributes class.Bill Wendling2012-09-252-5/+6
| | | | llvm-svn: 164629
* Don't do actual work inside an assert statement. Fixes PR11760!Nick Lewycky2012-09-231-4/+6
| | | | llvm-svn: 164474
* Add LLVM_OVERRIDE to methods that override their base classes.Craig Topper2012-09-231-1/+1
| | | | llvm-svn: 164471
* Encapsulate the "construct*AlignmentFromInt" functions.Bill Wendling2012-09-211-2/+2
| | | | llvm-svn: 164373
* Make the 'get*AlignmentFromAttr' functions into member functions within the ↵Bill Wendling2012-09-211-7/+8
| | | | | | Attributes class. Now with fix. llvm-svn: 164370
* Revert r164308 to fix buildbots.Bill Wendling2012-09-201-8/+7
| | | | llvm-svn: 164309
* Make the 'get*AlignmentFromAttr' functions into member functions within the ↵Bill Wendling2012-09-201-7/+8
| | | | | | Attributes class. llvm-svn: 164308
* Remove more bare uses of the different Attribute enums.Bill Wendling2012-09-201-6/+6
| | | | llvm-svn: 164307
* Make the 'getAsString' function a method of the Attributes class.Bill Wendling2012-09-203-48/+48
| | | | llvm-svn: 164305
* Convert some attribute existence queries over to use the predicate methods.Bill Wendling2012-09-192-27/+27
| | | | llvm-svn: 164268
* Add in new data types that are used by AMDIL/ANL among others.Micah Villmow2012-09-191-0/+20
| | | | llvm-svn: 164261
* Add support for accessing an MDNode's operands via the C binding. Patch byDuncan Sands2012-09-191-0/+13
| | | | | | Anthony Bryant. llvm-svn: 164247
* whitespace.Nadav Rotem2012-09-191-9/+0
| | | | llvm-svn: 164203
* Mark unimplemented copy constructors and copy assignment operators as ↵Craig Topper2012-09-181-2/+2
| | | | | | LLVM_DELETED_FUNCTION. llvm-svn: 164090
* Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments.Craig Topper2012-09-152-13/+13
| | | | llvm-svn: 163974
* Define an official slot for the new !tbaa.struct metadata tag.Dan Gohman2012-09-131-0/+5
| | | | llvm-svn: 163815
* Unify the emission of the calling conventions into a single function to ↵Micah Villmow2012-09-131-42/+27
| | | | | | reduce code duplication. llvm-svn: 163805
* Recommit, with fixes:Eric Christopher2012-09-121-0/+24
| | | | | | | | | | | Add some support for dealing with an object pointer on arguments. Part of rdar://9797999 which now supports adding the object pointer attribute to the subprogram as it should. llvm-svn: 163754
* Revert "Add some support for dealing with an object pointer on arguments."Eric Christopher2012-09-121-24/+0
| | | | | | This should be done on the subprogram, not the variable itself. llvm-svn: 163734
* When calling print directly on a global (eg from the debugger) itDuncan Sands2012-09-121-3/+3
| | | | | | | | | was printing a newline that doesn't occur when printing other kinds of LLVM values. Move the printing of that newline elsewhere, making globals print the same as other values while leaving the output when printing an entire module unchanged. Patch by Saša Tomić. llvm-svn: 163693
* Add some support for dealing with an object pointer on arguments.Eric Christopher2012-09-121-0/+24
| | | | | | Part of rdar://9797999 llvm-svn: 163667
* c bindings: revert LLVMConstInlineAsm to always use the default asm dialect.Benjamin Kramer2012-09-101-4/+2
| | | | | | | | - The C API should be stable - InlineAsm::AsmDialect is not exposed to C - The function didn't match the prototype so this was unreachable code llvm-svn: 163502
* Stop casting away const qualifier needlessly.Roman Divacky2012-09-051-1/+1
| | | | llvm-svn: 163258
* [ms-inline asm] Enumerate the InlineAsm dialects and rename the nsdialect toChad Rosier2012-09-054-8/+9
| | | | | | inteldialect. llvm-svn: 163231
* [ms-inline asm] Emit the (new) inline asm Non-Standard Dialect attribute.Chad Rosier2012-09-051-0/+2
| | | | llvm-svn: 163181
* [ms-inline asm] Add the inline assembly dialect, AsmDialect, to the InlineAsmChad Rosier2012-09-043-13/+23
| | | | | | class. llvm-svn: 163175
* [ms-inline asm] Remove the Inline Asm Non-Standard Dialect attribute. ThisChad Rosier2012-09-041-3/+0
| | | | | | | implementation does not co-exist well with how the sideeffect and alignstack attributes are handled. The reverts r161641. llvm-svn: 163174
* Move the GCOVFormat enums into their own namespace per the LLVM coding standard.Bill Wendling2012-08-311-10/+10
| | | | llvm-svn: 163008
* Apply "/Og-" also to MSC15(aka VS9) on VMCore/Function.cpp.NAKAMURA Takumi2012-08-301-1/+1
| | | | llvm-svn: 162917
* Make atomic load and store of pointers work. Tighten verification of atomic ↵Eli Friedman2012-08-171-0/+32
| | | | | | | | | operations so other unexpected operations don't slip through. Based on patch by Logan Chien. PR11786/PR13186. llvm-svn: 162146
* Change the `linker_private_weak_def_auto' linkage to `linkonce_odr_auto_hide' toBill Wendling2012-08-173-10/+10
| | | | | | | | | | | | | | | | | | | | make it more consistent with its intended semantics. The `linker_private_weak_def_auto' linkage type was meant to automatically hide globals which never had their addresses taken. It has nothing to do with the `linker_private' linkage type, which outputs the symbols with a `l' (ell) prefix among other things. The intended semantic is more like the `linkonce_odr' linkage type. Change the name of the linkage type to `linkonce_odr_auto_hide'. And therefore changing the semantics so that it produces the correct output for the linker. Note: The old linkage name `linker_private_weak_def_auto' will still parse but is not a synonym for `linkonce_odr_auto_hide'. This should be removed in 4.0. <rdar://problem/11754934> llvm-svn: 162114
* Assert that dominates is not given a multiple edge. Finding out if we haveRafael Espindola2012-08-172-0/+17
| | | | | | | | | | | | | multiple edges between two blocks is linear. If the caller is iterating all edges leaving a BB that would be a square time algorithm. It is more efficient to have the callers handle that case. Currently the only callers are: * GVN: already avoids the multiple edge case. * Verifier: could only hit this assert when looking at an invalid invoke. Since it already rejects the invoke, just avoid computing the dominance for it. llvm-svn: 162113
* Teach GVN to reason about edges dominating uses. This allows it to handle casesRafael Espindola2012-08-161-14/+11
| | | | | | | | | | | | | where some fact lake a=b dominates a use in a phi, but doesn't dominate the basic block itself. This feature could also be implemented by splitting critical edges, but at least with the current algorithm reasoning about the dominance directly is faster. The time for running "opt -O2" in the testcase in pr10584 is 1.003 times slower and on gcc as a single file it is 1.0007 times faster. llvm-svn: 162023
* Fix a typo that led to a failure to correctly verify bitcast instructions.Nick Lewycky2012-08-151-1/+1
| | | | | | Patch by Stephen Hines! llvm-svn: 161921
* Typo.Eric Christopher2012-08-141-1/+1
| | | | llvm-svn: 161826
* The normal edge of an invoke is not allowed to branch to a block with aEli Friedman2012-08-101-1/+1
| | | | | | landingpad. Enforce it in the verifier, and fix the regression tests to match. llvm-svn: 161697
* Move BasicBlockEdge to the cpp file. No functionality change.Rafael Espindola2012-08-101-0/+16
| | | | llvm-svn: 161663
* [ms-inline asm] Add a new Inline Asm Non-Standard Dialect attribute.Chad Rosier2012-08-101-0/+3
| | | | | | | | | | | | | | This new attribute is intended to be used by the backend to determine how the inline asm string should be parsed/printed. This patch adds the ia_nsdialect attribute and also adds a test case to ensure the IR is correctly parsed, but there is no functional change at this time. The standard dialect is assumed to be AT&T. Therefore, this attribute should only be added to MS-style inline assembly statements, which use the Intel dialect. If we ever support more dialects we'll need to add additional state to the attribute. llvm-svn: 161641
* The dominance computation already has logic for computing if an edge dominatesRafael Espindola2012-08-071-27/+40
| | | | | | | | | | | | | | | | | | | | | | | | a use or a BB, but it is inline in the handling of the invoke instruction. This patch refactors it so that it can be used in other cases. For example, in define i32 @f(i32 %x) { bb0: %cmp = icmp eq i32 %x, 0 br i1 %cmp, label %bb2, label %bb1 bb1: br label %bb2 bb2: %cond = phi i32 [ %x, %bb0 ], [ 0, %bb1 ] %foo = add i32 %cond, %x ret i32 %foo } GVN should be able to replace %x with 0 in any use that is dominated by the true edge out of bb0. In the above example the only such use is the one in the phi. llvm-svn: 161429
* Postpone the deletion of the old name in StructType::setName to allow using ↵Benjamin Kramer2012-08-041-10/+20
| | | | | | | | a slice of the old name. Fixes PR13522. Add a rudimentary unit test to exercise the behavior. llvm-svn: 161296
* Move the "findUsedStructTypes" functionality outside of the Module class.Bill Wendling2012-08-034-142/+152
| | | | | | | | | The "findUsedStructTypes" method is very expensive to run. It needs to be optimized so that LTO can run faster. Splitting this method out of the Module class will help this occur. For instance, it can keep a list of seen objects so that it doesn't process them over and over again. llvm-svn: 161228
* Add support for v16i32/v16i64 into the code generator. This is required for ↵Micah Villmow2012-07-261-0/+8
| | | | | | backends that use i32/i64 vectors for the getSetCCResultType function. llvm-svn: 160814
* Fix a dangling StringRef bug in the auto upgrader. In one case, we resetChandler Carruth2012-07-201-2/+2
| | | | | | | | | | | CI's name, and then used the StringRef pointing at its old name. I'm fixing it by storing the name in a std::string, and hoisting the renaming logic to happen always. This is nicer anyways as it will allow the upgraded IR to have the same names as the input IR in more cases. Another bug found by AddressSanitizer. Woot. llvm-svn: 160572
* Pull the simple parts of DenseMapInfo<DebugLoc> inline and prune includes.Benjamin Kramer2012-07-191-12/+0
| | | | llvm-svn: 160507
* Remove tabs.Bill Wendling2012-07-193-20/+20
| | | | llvm-svn: 160477
* Adding some debug information to PassManagerVictor Oliveira2012-07-181-0/+20
| | | | llvm-svn: 160446
OpenPOWER on IntegriCloud