summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
* Tidy up #includes, deleting a bunch of unnecessary #includes.Dan Gohman2009-01-0560-128/+43
| | | | llvm-svn: 61715
* eliminate tabs from my previous commitGabor Greif2009-01-051-1/+1
| | | | llvm-svn: 61695
* Get rid of the tagging functions and use PointerIntPair.Gabor Greif2009-01-051-40/+5
| | | | | | | | | This means that we have to include an additional header. This patch should be functionally equivalent. I cannot outrule any performance degradation, though I do not expect any. llvm-svn: 61694
* Add a mechanism to specify attributes in getOrInsertFunction.Nick Lewycky2009-01-041-1/+8
| | | | llvm-svn: 61645
* Add utility functions for marking parameters as noalias or nocapture.Nick Lewycky2009-01-041-12/+39
| | | | | | | Clean up some of the existing code by making it use hasFnAttr/addFnAttr and round it off by creating removeFnAttr. llvm-svn: 61627
* Add several more unimplemented operator overloads to ilist_iteratorDan Gohman2009-01-041-4/+16
| | | | | | to help catch errors. llvm-svn: 61622
* add #include guards, thanks Dan.Chris Lattner2009-01-041-0/+5
| | | | llvm-svn: 61619
* Remove the code from the scheduler that commuted two-addressDan Gohman2009-01-031-3/+0
| | | | | | | | | | | | | | instructions to avoid copies, because TwoAddressInstructionPass also does this optimization. The scheduler's version didn't account for live-out values, which resulted in spurious commutes and missed opportunities. Now, TwoAddressInstructionPass handles all the opportunities, instead of just those that the scheduler missed. The result is usually the same, though there are occasional trivial differences resulting from the avoidance of spurious commutes. llvm-svn: 61611
* * Alphabetized system headers per the style guideMisha Brukman2009-01-024-12/+10
| | | | | | * Minor spacing and comment cleanups llvm-svn: 61590
* Reimplement the old and horrible bison parser for .ll files with a niceChris Lattner2009-01-021-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and clean recursive descent parser. This change has a couple of ramifications: 1. The parser code is about 400 lines shorter (in what we maintain, not including what is autogenerated). 2. The code should be significantly faster than the old code because we don't have to work around bison's poor handling of datatypes with ctors/dtors. This also makes the code much more resistant to memory leaks. 3. We now get caret diagnostics from the .ll parser, woo. 4. The actual diagnostics emited from the parser are completely different so a bunch of testcases had to be updated. 5. I now disallow "%ty = type opaque %ty = type i32". There was no good reason to support this, it was just an accident of the old implementation. I have no reason to think that anyone is actually using this. 6. The syntax for sticking a global variable has changed to make it unambiguous. I don't think anyone is depending on this since only clang supports this and it is not solid yet, so I'm not worried about anything breaking. 7. This gets rid of the last use of bison, and along with it the .cvs files. I'll prune this from the makefiles as a subsequent commit. There are a few minor cleanups that can be done after this commit (suggestions welcome!) but this passes dejagnu testing and is ready for its time in the limelight. llvm-svn: 61558
* Fix typo.Nick Lewycky2009-01-021-1/+1
| | | | llvm-svn: 61554
* Fix PR3274: when promoting the condition of a BRCOND node,Duncan Sands2009-01-011-1/+1
| | | | | | | | | | promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). llvm-svn: 61542
* Some compilers are picky about accessing the first element of a std::vector ifBill Wendling2009-01-011-2/+5
| | | | | | there's nothing in the vector. Pacify them. llvm-svn: 61536
* Don't analyze arguments already marked 'nocapture'.Duncan Sands2008-12-311-0/+4
| | | | llvm-svn: 61532
* Fixed grammar and capitalization.Misha Brukman2008-12-311-5/+4
| | | | llvm-svn: 61531
* Rename AddReadAttrs to FunctionAttrs, and teach it howDuncan Sands2008-12-312-3/+5
| | | | | | | | to work out (in a very simplistic way) which function arguments (pointer arguments only) are only dereferenced and so do not escape. Mark such arguments 'nocapture'. llvm-svn: 61525
* Add a new Attribute::getAlignmentFromAttrs method.Chris Lattner2008-12-311-5/+11
| | | | llvm-svn: 61517
* Linux wants the FDE initial location and address range to be forced to 32-bit.Bill Wendling2008-12-291-0/+8
| | | | | | Darwin doesn't. Make this optional for platforms. llvm-svn: 61484
* move select validation logic into a shared place where the select ctor,Chris Lattner2008-12-291-0/+5
| | | | | | verifier, asm parser, etc can share it. llvm-svn: 61461
* Forgot to commit this file.Owen Anderson2008-12-281-0/+10
| | | | | | Add a clear() method to remove all ranges and value numbers for a live interval. llvm-svn: 61459
* implement simplify_type for PATypeHolder so that isa<FooType>(PATypeHolder)Chris Lattner2008-12-271-0/+16
| | | | | | works. llvm-svn: 61448
* Darwin likes for the EH frame to be non-local.Bill Wendling2008-12-241-0/+7
| | | | llvm-svn: 61420
* GCC doesn't emit DW_EH_PE_sdata4 for the FDE encoding on Darwin. I'm not sureBill Wendling2008-12-241-0/+8
| | | | | | about other platforms. llvm-svn: 61415
* Clean up the atomic opcodes in SelectionDAG.Dan Gohman2008-12-234-243/+110
| | | | | | | | | | | | | This removes all the _8, _16, _32, and _64 opcodes and replaces each group with an unsuffixed opcode. The MemoryVT field of the AtomicSDNode is now used to carry the size information. In tablegen, the size-specific opcodes are replaced by size-independent opcodes that utilize the ability to compose them with predicates. This shrinks the per-opcode tables and makes the code that handles atomics much more concise. llvm-svn: 61389
* Rename BuildSchedUnits to BuildSchedGraph, and refactor theDan Gohman2008-12-233-8/+13
| | | | | | code in ScheduleDAGSDNodes' BuildSchedGraph into separate functions. llvm-svn: 61376
* Comment MO_FPImmediate and doxygenate surrounding comments.Dan Gohman2008-12-231-9/+9
| | | | llvm-svn: 61374
* Refactor a bunch of code out of AsmPrinter::EmitGlobalConstant into separateDan Gohman2008-12-221-0/+8
| | | | | | functions. llvm-svn: 61345
* Add an assertion to the ScheduleDAGInstrs class to catch SUnitsDan Gohman2008-12-221-0/+4
| | | | | | | reallocations. We don't do cloning on MachineInstr schedule DAGs, but this is a worthwhile sanity check regardless. llvm-svn: 61343
* Add an accesor for the isNormalMemory field in the SDep class.Dan Gohman2008-12-221-0/+7
| | | | llvm-svn: 61342
* Add an assertion to catch SUnits reallocations. And add a doxygenDan Gohman2008-12-221-0/+18
| | | | | | comment for the ScheduleDAGSDNodes class. llvm-svn: 61341
* Clarify a comment.Dan Gohman2008-12-221-1/+2
| | | | llvm-svn: 61338
* Reword the comment for ConstantInt's getLimitedValue.Dan Gohman2008-12-201-3/+5
| | | | llvm-svn: 61280
* LiveInterval::removeKills and isKill don't need 'this' andDan Gohman2008-12-201-2/+2
| | | | | | can be static member functions. llvm-svn: 61278
* Fix PR3149. If an early clobber def is a physical register and it is tied to ↵Evan Cheng2008-12-191-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | an input operand, it effectively extends the live range of the physical register. Currently we do not have a good way to represent this. 172 %ECX<def> = MOV32rr %reg1039<kill> 180 INLINEASM <es:subl $5,$1 sbbl $3,$0>, 10, %EAX<def>, 14, %ECX<earlyclobber,def>, 9, %EAX<kill>, 36, <fi#0>, 1, %reg0, 0, 9, %ECX<kill>, 36, <fi#1>, 1, %reg0, 0 188 %EAX<def> = MOV32rr %EAX<kill> 196 %ECX<def> = MOV32rr %ECX<kill> 204 %ECX<def> = MOV32rr %ECX<kill> 212 %EAX<def> = MOV32rr %EAX<kill> 220 %EAX<def> = MOV32rr %EAX 228 %reg1039<def> = MOV32rr %ECX<kill> The early clobber operand ties ECX input to the ECX def. The live interval of ECX is represented as this: %reg20,inf = [46,47:1)[174,230:0) 0@174-(230) 1@46-(47) The right way to represent this is something like %reg20,inf = [46,47:2)[174,182:1)[181:230:0) 0@174-(182) 1@181-230 @2@46-(47) Of course that won't work since that means overlapping live ranges defined by two val#. The workaround for now is to add a bit to val# which says the val# is redefined by a early clobber def somewhere. This prevents the move at 228 from being optimized away by SimpleRegisterCoalescing::AdjustCopiesBackFrom. llvm-svn: 61259
* Add dyn_cast_or_null bindings for some additional classes missed in r61252.Gordon Henriksen2008-12-191-1/+18
| | | | llvm-svn: 61253
* C bindings for dyn_cast_or_null.Gordon Henriksen2008-12-191-10/+65
| | | | | | This operation can be used to build dyn_cast, isa, and cast. llvm-svn: 61252
* Add support for writing LLVM IR to a specified BitstreamWriter.Chris Lattner2008-12-192-0/+8
| | | | | | Patch by Lukasz Janyst! llvm-svn: 61251
* Fix bug 3202.Rafael Espindola2008-12-191-0/+6
| | | | | | | The EH_frame and .eh symbols are now private, except for darwin9 and earlier. The patch also fixes the definition of PrivateGlobalPrefix on pcc linux. llvm-svn: 61242
* Resubmit support for the 'nocapture' attribute.Nick Lewycky2008-12-191-13/+26
| | | | | | | | | | The problematic part of this patch is that we were out of attribute bits, requiring some fancy bit hacking to make it fit (by shrinking alignment) without breaking existing users or the file format. This change will require users to rebuild llvm-gcc to match llvm. llvm-svn: 61239
* Fix RegScavenger::forward() to work on basic blocks containing exactlyDan Gohman2008-12-191-0/+1
| | | | | | one instruction. llvm-svn: 61236
* Delete the RegScavenging constructor that takes a MachineBasicBlockDan Gohman2008-12-191-4/+0
| | | | | | | argument. Nothing was using it, and it set the MBB member without calling enterBasicBlock, which was problematic. llvm-svn: 61234
* Added support for vector widening.Mon P Wang2008-12-183-40/+82
| | | | llvm-svn: 61209
* Today the front-ends (llvm-gcc and clang) generate multiple ↵Devang Patel2008-12-172-10/+35
| | | | | | | | llvm.dbg.compile_units to identify source file for various debug entities. Each llvm.dbg.compile_unit matches one file on the disk. However, the backend only supports one DW_TAG_compile_unit per .o file. The backend selects first compile_unit from the vector to construct DW_TAG_compile_unit entry, which is not correct in all cases. First step to resolve this is, record file name and directory directly in debug info for various debug entities. llvm-svn: 61164
* This adds some missing functions to the C binding:Chris Lattner2008-12-171-0/+9
| | | | | | | | | | - ability to insert previously created instructions using a builder - creation of aliases - creation of inline asm constants Patch by Zoltan Varga! llvm-svn: 61153
* Fix the comments for getDepth and getHeight.Dan Gohman2008-12-171-3/+3
| | | | llvm-svn: 61120
* Some enhancements for the 'case' expression.Mikhail Glushenkov2008-12-171-0/+1
| | | | | | Add (error) and (empty). llvm-svn: 61117
* Temporarily revert r61019, r61030, and r61040. These were breaking LLVM ReleaseBill Wendling2008-12-161-18/+13
| | | | | | builds. llvm-svn: 61094
* Add -print-dbginfo pass that prints LLVM IR with comments inserted to showTorok Edwin2008-12-162-0/+4
| | | | | | | which source/line a certain BB/instruction comes from, original variable names, and original (unmangled) C++ name of functions. llvm-svn: 61085
* Add utility functions to search for DbgStopPointInst corresponding to anTorok Edwin2008-12-161-1/+14
| | | | | | | instruction or BasicBlock, and to search for DbgDeclareInst corresponding to a variable. llvm-svn: 61084
* Add initial support for back-scheduling address computations,Dan Gohman2008-12-162-2/+9
| | | | | | | especially in the case of addresses computed from loop induction variables. llvm-svn: 61075
OpenPOWER on IntegriCloud