|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.
There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.
The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.
I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).
I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.
llvm-svn: 171366 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.
Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]
llvm-svn: 169131 | 
| | 
| 
| 
| | llvm-svn: 165402 | 
| | 
| 
| 
| 
| 
| 
| 
| | - Add 'HwEncoding' for X86 registers and call getEncodingValue() to
  retrieve their encoding values.
- This's the first step to adopt new scheme. Furthur revising is onging.
llvm-svn: 165241 | 
| | 
| 
| 
| 
| 
| | code emitters and the disassembler table builder. Fix a couple instructions that were still missing VEX_L.
llvm-svn: 164204 | 
| | 
| 
| 
| 
| 
| | did getFunction()->getName(). Remove includes of Function.h that are no longer needed.
llvm-svn: 162347 | 
| | 
| 
| 
| 
| 
| | instructions. Needed because super reg defs and kills are added as implicit operands on 128-bit instructions. Fixes PR13349. Patch by Jose Fonseca.
llvm-svn: 160543 | 
| | 
| 
| 
| 
| 
| | myself and Manman Ren.
llvm-svn: 160110 | 
| | 
| 
| 
| 
| 
| 
| 
| | I disabled FMA3 autodetection, since the result may differ from expected for some benchmarks.
I added tests for GodeGen and intrinsics.
I did not change llvm.fma.f32/64 - it may be done later.
llvm-svn: 157737 | 
| | 
| 
| 
| | llvm-svn: 157685 | 
| | 
| 
| 
| | llvm-svn: 157309 | 
| | 
| 
| 
| 
| 
| | functional change intended.
llvm-svn: 157122 | 
| | 
| 
| 
| | llvm-svn: 157109 | 
| | 
| 
| 
| | llvm-svn: 155959 | 
| | 
| 
| 
| | llvm-svn: 155956 | 
| | 
| 
| 
| | llvm-svn: 155896 | 
| | 
| 
| 
| 
| 
| | emitter.  Needs some major refactoring as these two code emitters are almost identical
llvm-svn: 155810 | 
| | 
| 
| 
| 
| 
| | MSP430, PPC, PTX, Sparc, X86, XCore.
llvm-svn: 150878 | 
| | 
| 
| 
| 
| 
| 
| | The different calling conventions and call-preserved registers are
represented with regmask operands that are added dynamically.
llvm-svn: 150708 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | generator to it. For non-bundle instructions, these behave exactly the same
as the MC layer API.
For properties like mayLoad / mayStore, look into the bundle and if any of the
bundled instructions has the property it would return true.
For properties like isPredicable, only return true if *all* of the bundled
instructions have the property.
For properties like canFoldAsLoad, isCompare, conservatively return false for
bundles.
llvm-svn: 146026 | 
| | 
| 
| 
| 
| 
| | PR11207.
llvm-svn: 142841 | 
| | 
| 
| 
| | llvm-svn: 142741 | 
| | 
| 
| 
| | llvm-svn: 142141 | 
| | 
| 
| 
| | llvm-svn: 138725 | 
| | 
| 
| 
| 
| 
| | X86MCCodeEmitter does.
llvm-svn: 138723 | 
| | 
| 
| 
| 
| 
| | C++0x.
llvm-svn: 136211 | 
| | 
| 
| 
| | llvm-svn: 135930 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | to MCRegisterInfo. Also initialize the mapping at construction time.
This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step
towards fixing the layering violation.
llvm-svn: 135424 | 
| | 
| 
| 
| 
| 
| 
| 
| | sink them into MC layer.
- Added MCInstrInfo, which captures the tablegen generated static data. Chang
TargetInstrInfo so it's based off MCInstrInfo.
llvm-svn: 134021 | 
| | 
| 
| 
| | llvm-svn: 128826 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | the add/or xform.  The JIT isn't mcized yet, boo.
This fixes Olden/voronoi, bh and a ton of other stuff that
uses the jit.
llvm-svn: 116125 | 
| | 
| 
| 
| | llvm-svn: 116124 | 
| | 
| 
| 
| | llvm-svn: 111835 | 
| | 
| 
| 
| 
| 
| 
| 
| | - Do not clobber al during variadic calls, this is AMD64 ABI-only feature
  - Emit wincall64, where necessary
Patch by Cameron Esfahani!
llvm-svn: 111289 | 
| | 
| 
| 
| | llvm-svn: 111001 | 
| | 
| 
| 
| | llvm-svn: 111000 | 
| | 
| 
| 
| | llvm-svn: 110460 | 
| | 
| 
| 
| | llvm-svn: 110410 | 
| | 
| 
| 
| 
| 
| 
| 
| | address of the static
ID member as the sole unique type identifier.  Clean up APIs related to this change.
llvm-svn: 110396 | 
| | 
| 
| 
| | llvm-svn: 110371 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | rip out the implementation of X86InstrInfo::GetInstSizeInBytes.
The code being ripped out just implemented a copy and hacked up
version of the (old) instruction encoder, and is buggy and 
terrible in other ways.  Since "GetInstSizeInBytes" is really 
only there to support the JIT's "NeedsExactSize" hook (which
noone is using), just rip out the code.  I will rip out the
NeedsExactSize hook next.
This resolves rdar://7617809 - switch X86InstrInfo::GetInstSizeInBytes to use X86MCCodeEmitter
llvm-svn: 109149 | 
| | 
| 
| 
| 
| 
| | thus is a much more meaningful name.
llvm-svn: 108563 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | pass that inserted it.
It is no longer necessary to limit the live ranges of FP registers to a single
basic block.
llvm-svn: 108536 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | like all other instructions, even though a segment is not
allowed.  This resolves a bunch of gross hacks in the 
encoder and makes LEA more consistent with the rest of the
instruction set.
No functionality change.
llvm-svn: 107934 | 
| | 
| 
| 
| 
| 
| | X86 memory operand.
llvm-svn: 107925 | 
| | 
| 
| 
| | llvm-svn: 106542 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | fixes a bug (<rdar://problem/7880900>) in the JIT. This code wouldn't work:
target triple = "x86_64-apple-darwin"
define double @func(double %a) {
  %tmp1 = fmul double %a, 5.000000e-01            ; <double> [#uses=1]
  ret double %tmp1
}
define i32 @main() nounwind {
  %1 = call double @func(double 4.770000e-04) ; <i64> [#uses=0]
  ret i32 0
}
llvm-svn: 101965 | 
| | 
| 
| 
| | llvm-svn: 101334 | 
| | 
| 
| 
| | llvm-svn: 100709 | 
| | 
| 
| 
| 
| 
| | with an MCSymbol instead of an immediate.
llvm-svn: 98481 |