llvm-6502/include/llvm
Andrew Lenharth aeef8fc5c6 Add support for a cycle counter intrinsic. As basically all processors have
this and have it in about the same form, I think this makes sense.
on X86, you do a RDTSC (64bit result, from any ring since the P5MMX)
on Alpha, you do a RDCC
on PPC, there is a sequence which may or may not work depending on how things
are setup by the OS.  Or something like that.  Maybe someone who knows PPC
can add support.  Something about the time base register.
on Sparc, you read %tick, which in some solaris versions (>=8) is readable by
userspace
on IA64 read ar.itc

So I think the ulong is justified since all of those are 64bit.
Support is slighly flaky on old chips (P5 and lower) and sometimes
depends on OS (PPC, Sparc).  But for modern OS/Hardware (aka this decade),
we should be ok.

I am still not sure what to do about lowering.  I can either see a lower to 0, to
gettimeofday (or the target os equivalent), or loudly complaining and refusing to
continue.

I am commiting an Alpha implementation.  I will add the X86 implementation if I
have to (I have use of it in the near future), but if someone who knows that
backend (and the funky multi-register results) better wants to add it, it would
take them a lot less time ;)

TODO: better lowering and legalizing, and support more platforms


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24299 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-11 16:45:18 +00:00
..
ADT Fix comment. 2005-10-26 15:02:21 +00:00
Analysis remove a dead header 2005-10-29 04:43:10 +00:00
Assembly Give the asmparser the ability to parse strings, patch contributed by 2005-05-20 03:25:29 +00:00
Bytecode Remove vim settings from source code; people should use llvm/utils/vim/vimrc 2005-05-05 22:33:09 +00:00
CodeGen Add support for a cycle counter intrinsic. As basically all processors have 2005-11-11 16:45:18 +00:00
Config For PR616: 2005-08-24 10:07:20 +00:00
Debugger Remove trailing whitespace 2005-04-21 20:39:54 +00:00
ExecutionEngine For PR540: 2005-07-12 15:51:55 +00:00
Support Allow per-character control over what target assemblers allow in symbol 2005-11-10 21:39:12 +00:00
System For PR616: 2005-08-24 10:07:20 +00:00
Target Add a new option to indicate we want the code generator to emit code quickly, 2005-11-08 02:12:47 +00:00
Transforms needs to go here to apparently. 2005-11-10 02:07:45 +00:00
AbstractTypeUser.h Convert tabs to spaces 2005-04-22 03:18:56 +00:00
Argument.h Remove trailing whitespace 2005-04-21 20:19:05 +00:00
BasicBlock.h Remove some dead argument names which irritates GCC at certain warning levels. 2005-10-25 17:59:28 +00:00
CallGraphSCCPass.h Remove trailing whitespace 2005-04-21 20:19:05 +00:00
CallingConv.h New file 2005-05-06 19:59:08 +00:00
Constant.h Remove some dead argument names which irritates GCC at certain warning levels. 2005-10-25 17:59:28 +00:00
Constants.h Change the signature of replaceUsesOfWithOnConstant to take a Use* and not 2005-10-04 18:12:13 +00:00
DerivedTypes.h Some cleanups for compilation with GCC 4.0.0 to remove warnings: 2005-05-15 16:13:11 +00:00
Function.h Add a missing Module::setTargetTriple method. 2005-10-25 17:58:00 +00:00
GlobalValue.h Make sure to initialize the alignment field 2005-11-06 08:22:18 +00:00
GlobalVariable.h Change the signature of replaceUsesOfWithOnConstant to take a Use* and not 2005-10-04 18:12:13 +00:00
InstrTypes.h allow these to take a generic Value* 2005-04-24 07:28:04 +00:00
Instruction.def improve comments 2005-06-24 18:17:33 +00:00
Instruction.h Remove some dead argument names which irritates GCC at certain warning levels. 2005-10-25 17:59:28 +00:00
Instructions.h add an accessor 2005-11-05 21:58:30 +00:00
IntrinsicInst.h Convert tabs to spaces 2005-04-22 03:18:56 +00:00
Intrinsics.h Add support for a cycle counter intrinsic. As basically all processors have 2005-11-11 16:45:18 +00:00
Linker.h Remove trailing whitespace 2005-04-21 20:19:05 +00:00
Module.h Add a missing Module::setTargetTriple method. 2005-10-25 17:58:00 +00:00
ModuleProvider.h Remove trailing whitespace 2005-04-21 20:19:05 +00:00
Pass.h Remove trailing whitespace 2005-04-21 20:19:05 +00:00
PassAnalysisSupport.h Older compilers won't like the inline virtual destructor in the header file 2005-04-25 01:01:35 +00:00
PassManager.h Remove trailing whitespace 2005-04-21 20:19:05 +00:00
PassSupport.h Remove trailing whitespace 2005-04-21 20:19:05 +00:00
SymbolTable.h Some cleanups for compilation with GCC 4.0.0 to remove warnings: 2005-05-15 16:13:11 +00:00
SymbolTableListTraits.h Remove trailing whitespace 2005-04-21 20:19:05 +00:00
Type.h add a method, remove a dead #include 2005-04-23 21:59:42 +00:00
Use.h Remove trailing whitespace 2005-04-21 20:19:05 +00:00
User.h Remove trailing whitespace 2005-04-21 20:19:05 +00:00
Value.h remove a comma to compile with pedantic gcc 2005-10-08 01:24:19 +00:00