aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86
Commit message (Collapse)AuthorAgeFilesLines
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-1119-27/+102
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
* Hopefully fix the objdir != srcdir issueChris Lattner2003-11-071-6/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9761 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix warnings building on sparcChris Lattner2003-11-061-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9758 91177308-0d34-0410-b5e6-96231b3b80d8
* We know exactly what the value of $< is, so instead of using `basename $<` toMisha Brukman2003-11-051-8/+7
| | | | | | | get just the filename and not the full path, just use the filename directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9730 91177308-0d34-0410-b5e6-96231b3b80d8
* Change all machine basic block modifier functions in MRegisterInfo toAlkis Evlogimenos2003-11-042-41/+54
| | | | | | | | | | | | | | | | return the number of instructions added to/removed from the basic block passed as their first argument. Note: This is only needed because we use a std::vector instead of an ilist to keep MachineBasicBlock instructions. Inserting an instruction to a MachineBasicBlock invalidates all iterators to the basic block. The return value can be used to update an index to the machine basic block instruction vector and circumvent the iterator elimination problem but this is really not needed if we move to a better representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9704 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix problems in previous changes. This fixes several regressions last night.Chris Lattner2003-11-042-10/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9694 91177308-0d34-0410-b5e6-96231b3b80d8
* Significantly simplify constant emission by unifying the stuff which used to ↵Chris Lattner2003-11-032-294/+238
| | | | | | | | | | build up strings with the stuff that used to print to an ostream directly. We now NEVER build up big strings, only to print them once they are formed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9686 91177308-0d34-0410-b5e6-96231b3b80d8
* Incorporate printSingleConstantValue into its single callerChris Lattner2003-11-032-178/+132
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9684 91177308-0d34-0410-b5e6-96231b3b80d8
* * Reformat some codeChris Lattner2003-11-032-84/+68
| | | | | | | | * Emit bools as 1/0 instead of true/false, fixing compilation of eon and PR 83 & Jello/2003-11-03-GlobalBool.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9683 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete unused EmitByteSwap methodChris Lattner2003-10-232-98/+86
| | | | | | | Implement mul/div/rem constant expressions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9424 91177308-0d34-0410-b5e6-96231b3b80d8
* * Order includes according to style guideMisha Brukman2003-10-232-210/+212
| | | | | | | | * Convert tabs to spaces * Make code fit within 80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9416 91177308-0d34-0410-b5e6-96231b3b80d8
* Converted tabs to spaces.Misha Brukman2003-10-221-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9360 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM copyright header.John Criswell2003-10-218-0/+56
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9321 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM copyright notice to Makefiles.John Criswell2003-10-201-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9312 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-2014-0/+98
| | | | | | | Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor leftover fixups from replaceMachineCodeForFunction () change.Brian Gaeke2003-10-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9295 91177308-0d34-0410-b5e6-96231b3b80d8
* Make replaceMachineCodeForFunction return void.Brian Gaeke2003-10-201-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9288 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit x86 instructions for: A = B op C, where A and B are 16-bit registers,Chris Lattner2003-10-203-0/+94
| | | | | | | | | | | | | | | | | | | | | | | C is a constant which can be sign-extended from 8 bits without value loss, and op is one of: add, sub, imul, and, or, xor. This allows the JIT to emit the one byte version of the constant instead of the two or 4 byte version. Because these instructions are very common, this can save a LOT of code space. For example, I sampled two benchmarks, 176.gcc and 254.gap. BM Old New Reduction 176.gcc 2673621 2548962 4.89% 254.gap 498261 475104 4.87% Note that while the percentage is not spectacular, this did eliminate 124.6 _KILOBYTES_ of codespace from gcc. Not bad. Note that this doesn't effect the llc version at all, because the assembler already does this optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9284 91177308-0d34-0410-b5e6-96231b3b80d8
* Further cleanups and simplificationsChris Lattner2003-10-202-64/+34
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9282 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate code for pointer size and endianness emulation.Chris Lattner2003-10-203-314/+41
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9281 91177308-0d34-0410-b5e6-96231b3b80d8
* The Grammar Police was here.Misha Brukman2003-10-202-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9280 91177308-0d34-0410-b5e6-96231b3b80d8
* * Rename X86::IMULr16 -> X86::IMULrr16Chris Lattner2003-10-206-19/+69
| | | | | | | | * Implement R1 = R2 * C where R1 and R2 are 32 or 16 bits. This avoids an extra copy into a register, reducing register pressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9278 91177308-0d34-0410-b5e6-96231b3b80d8
* * Multiplications by 2^X are turned into shifts. This factors code out of theChris Lattner2003-10-192-190/+402
| | | | | | | | | | | | getelementptr code path for use by other code paths (like malloc and alloca). * Optimize comparisons with zero * Generate neg, not, inc, and dec instructions, when possible. This gives some code size wins, which might translate into performance. We'll see tommorow in the nightly tester. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9267 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some new instructions. WheeeChris Lattner2003-10-191-1/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9266 91177308-0d34-0410-b5e6-96231b3b80d8
* .string adds an implicit zero at the end. This is not what we wanted.Chris Lattner2003-10-192-2/+2
| | | | | | | This fixes PR#44. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9252 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: Jello/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.llxChris Lattner2003-10-192-18/+42
| | | | | | | This also fixes miscompilation of 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9249 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for the new varargs intrinsicsChris Lattner2003-10-182-52/+72
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9224 91177308-0d34-0410-b5e6-96231b3b80d8
* You can't just blat the address into memory, you have to blat itsBrian Gaeke2003-10-171-4/+7
| | | | | | | displacement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9210 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement replaceMachineCodeForFunction() for x86.Brian Gaeke2003-10-171-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9204 91177308-0d34-0410-b5e6-96231b3b80d8
* Add prototype for replaceMachineCodeForFunction().Brian Gaeke2003-10-171-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9202 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo in comment.Brian Gaeke2003-10-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9187 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for 'weak' linkage.Chris Lattner2003-10-162-2/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9171 91177308-0d34-0410-b5e6-96231b3b80d8
* Decrease usage of use_size()Chris Lattner2003-10-152-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9135 91177308-0d34-0410-b5e6-96231b3b80d8
* Output a contorted sequence of instructions to make sure that we don't accessChris Lattner2003-10-141-8/+20
| | | | | | | off the bottom of the stack. This fixes PR#41 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9114 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable the leaf function optimization, which is apparently not legal onChris Lattner2003-10-141-25/+2
| | | | | | | | | X86/linux. :( The problem is that a signal delivered while the function is executing could clobber the functions stack. This is a partial fix for PR41. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9113 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix spelling.Misha Brukman2003-10-104-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9027 91177308-0d34-0410-b5e6-96231b3b80d8
* Add # of printed instructions statistic to both the SPARC and X86 LLC backends.Brian Gaeke2003-10-062-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8892 91177308-0d34-0410-b5e6-96231b3b80d8
* Instead of hacking in custom support for Invoke/Unwind, use the LowerInvoke passChris Lattner2003-10-053-62/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8871 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved enum and command-line option in separate file. Also added function ↵Alkis Evlogimenos2003-10-021-29/+2
| | | | | | that returns the user selected register allocator to the caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8819 91177308-0d34-0410-b5e6-96231b3b80d8
* Change llc command line for register allocatorsAlkis Evlogimenos2003-10-021-6/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8815 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert previous change. For some reason this went into the main branchAlkis Evlogimenos2003-10-011-19/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8805 91177308-0d34-0410-b5e6-96231b3b80d8
* Added command line option for linear scan allocatorAlkis Evlogimenos2003-10-011-2/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8804 91177308-0d34-0410-b5e6-96231b3b80d8
* Be a little more specific about what is begin generated. Only printChris Lattner2003-09-101-12/+12
| | | | | | | command line if VERBOSE=1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8453 91177308-0d34-0410-b5e6-96231b3b80d8
* Only emit inter-field-padding if the amount of padding is != 0Chris Lattner2003-09-102-2/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8452 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated to find source files using VPATH. This makes writing build rulesJohn Criswell2003-09-091-0/+6
| | | | | | | | | | | | much cleaner and easier. Labeled .td as a suffix for tblgen files in Makefile.rules. Modified build rules so that source files generated during the build are placed in the build directory and not the source directory (and not in a Debug directory). This makes the system cleaner and allows us to have a read-only source tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8424 91177308-0d34-0410-b5e6-96231b3b80d8
* * Simplify printConstantValueOnly by moving the tail padding stuff directlyChris Lattner2003-09-092-130/+180
| | | | | | | | | | into the struct case. * Extend printConstantValueOnly to print .zero's if the initializer is zero * Delete dead isConstantFunctionPointerRef function * Emit the appropriate assembly for the various linkage types! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8417 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate support for the llvm.unwind intrinisic, using the Unwind ↵Chris Lattner2003-09-082-2/+0
| | | | | | instruction instead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8411 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for the unwind instructionChris Lattner2003-09-082-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8408 91177308-0d34-0410-b5e6-96231b3b80d8
* Checkin of autoconf-style object root.John Criswell2003-09-061-6/+6
| | | | | | | | Adjusted Makefile to work with new autoconf-style object root. Specifically, use the new -I option of tblgen to find include files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8379 91177308-0d34-0410-b5e6-96231b3b80d8
* OptInfo is no longer requiredChris Lattner2003-09-011-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8312 91177308-0d34-0410-b5e6-96231b3b80d8